2017-06-03 19 views
0

からデータを取得していない:PHPは、私は次の問題を抱えているMySQLの

私のコードはこの1つである:

$id=$_SESSION["id"]; 
$query="select id_period from periods where id_group=$id and end=NULL"; 
$result=mysqli_query($conn,$query); 

if(mysqli_num_rows($result)==0){ 
$insert=mysqli_query($conn,"insert into periods(id_group) values($id)"); 
} 

while($row=mysqli_fetch_row($result)){ 
    $period=$row['id_period']; 
} 

$query="insert into times(id_period,id_group) values($period,$id)"; 
echo $query; 
$insert=mysqli_query($conn,$query); 

フィールド「終了」と「期間」= NULLを存在する場合、このコードは検索します。そうでない場合は、新しいものを挿入します。それはうまく動作します。しかし、次の部分は機能しません。 'times'クエリへの挿入には、var $ periodで指定されたid_periodが必要ですが、WHILEは決して実行されません。

ありがとうございました。

+0

**警告**:mysqliを使用する場合は、[パラメータ化されたクエリ](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)と['bind_param' ](http://php.net/manual/en/mysqli-stmt.bind-param.php)を使用してユーザーデータをクエリに追加します。 **重大な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成したため、文字列の補間または連結を使用してこれを実行しないでください。 ** '$ _POST'、' $ _GET'、**任意の**ユーザデータを直接クエリーに入れないでください。誰かがあなたのミスを悪用しようとすると非常に危険です。 – tadman

+0

[NULL値との比較](https://stackoverflow.com/questions/2393076/comparing-with-null-values)の可能な複製 – CBroe

答えて

0

コードこの中

while($row=mysqli_fetch_row($result)) { 
    $period=$row['id_period']; 
} 

は、結果セットからデータをフェッチするためにあなたは、PHPのドキュメントあたりhttp://php.net/manual/en/mysqli-result.fetch-row.php mysqli_fetch_rowとして使用mysqli_fetch_rowを持っている間、私は以下の問題点を見つける - 行を配列として取得します。

インデックスとして名前を使用してデータを取得したい場合は、 http://php.net/manual/en/mysqli-result.fetch-assoc.phpを使用してください。mysqli_fetch_assoc - 結果行を連想配列として取得します。

あなたのお役に立てば幸いです。

+0

作業中!私はすでにfetch_assocを使用しようとしていましたが、確かに私はその瞬間に別の問題があったので、私はそれを捨てました。大いに感謝する! –

+0

@CrateOFSようこそ。 – absawant25

0

3つのフィールドが挿入されていて、2つの値しか与えられていないという値がありません。

$query="insert into times(id_period,id_user,id_group) values($period,$id)"; 

また、準備されたステートメントとバインディングを調べる必要があります。

+0

申し訳ありませんが、実際のクエリにはより多くのフィールドがあります。私はそれを消すのを忘れた。しかし問題はまだそこにある。 –

関連する問題