2017-03-28 7 views
1

私は、データベーステーブルにある多くのオプションを含むドロップダウンリストを作成しようとしています。PHPの動的ドロップダウンリスト

$qry3 = "SELECT * FROM employees WHERE buss_id_fk = '{$_SESSION ['user_id']}' "; 
    $result3 = mysqli_query ($con, $qry3); 

    while ($row4 = mysqli_fetch_assoc($result3)){ 
    echo $row4['emp_id'] . " " . $row4['username'] . '</br>'; 
    } 

$ qry3は私のクエリです。$ row4でうまく動作し、すべてが意図どおりに表示されます。私は私のフォームに移動するとき、それはその$のROW4がやったように、いくつかを示す必要がありながら、今ダウンリスト私のドロップが存在しなければならないところ、私はこのコード

<!--the list of employees the business has --> 
        <select name="employees" class="form-control"> 

<?php while ($row3 = mysqli_fetch_assoc($result3)) { 

echo "<option value='" .$row3['emp_id']. "'>" .$row3['username']. "</option>" ; 

        } ?> 

        </select> <br> 

作らダウンリスト私のドロップはゼロ結果を示しています。コードに誤字があった場合も同様の質問を確認しましたが、助けにはなりませんでした。ありがとう!

+1

あなたは、コードの両方の例を持っていますか同時に走っている?もしそうなら、それは私が思うところで問題になるでしょう。すべての$ result3を$ row4でループすると、mysqlのポインタが最後に移動したので、select($ row3)に移動するとループする行はなくなります。 –

+0

$ row3が実際には動かないうちに$ row4を作ったので、なぜポインタが値の先頭にないのか分かりません。そのコードの前にそのテーブルに何も操作していません。しかし、他のテーブル上でいくつかのSQL移動を行います。なぜこれが起こるのか混乱させる。ご意見ありがとうございます! – Mar1AK

+1

**警告**: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

答えて

4

あなたが戻ってあなたが再び結果を反復処理したい場合は、結果セットの先頭へのポインタをリセットする必要があります。

<?php 
    mysqli_data_seek($result3, 0); // Zero indicates the beginning 
    while ($row3 = mysqli_fetch_assoc($result3)) { 

は、マニュアルを参照してください:mysqli_data_seek()

+0

うわー。なぜこれは必要でしたか?説明してもらえますか? $ row3がうまく動作しないので、値がテーブルから取得されているかどうかをテストするために$ row4を作成しました。私は以前この問題に直面していませんでした。 – Mar1AK

+0

データポインタが結果セットの最後にあるので、次にその結果セットにアクセスしようとすると、反復する行がなくなったように見えます。ポインタを先頭に戻すことで、その結果セットに再度アクセスし、もう一度それを反復することができます。 –

+0

ええ、私はそれを理解していますが、私は$ row3コードの前にそのテーブルに何も操作しませんでした。そしてそれはうまくいきませんでした。その後、値が実際にテーブルから引き出されているかどうかをテストするために$ row4を作りました。今私は$ row4を削除し、mysqli_data_seek()を削除し、意図したように動作しています...だから変です。 – Mar1AK

関連する問題