2012-01-26 12 views
0

ドロップダウンメニューとして表示したい結果があります。クエリは、テーブルからIDと名前を選択します。PHPでforeachループを使用して2つの値を持つPHP mysql結果を表示

この結果をドロップダウンメニューのリストとして使用したいと考えています。これは私がこれまで持っていたものです。

ユーザーに値と表示の両方として名前を表示したければ、これは正常に機能します。しかし、私がしたいのは、選択したIDを "値"としてselectオプションに使用し、選択した名前をユーザーに表示したいのです。私はこれを試しましたが、うまくいきません。

<select id="dropdown" name="dropdown"> 
    <option value="select" selected="selected">Select</option> 
    <?php 
    while ($usersRow = mysqli_fetch_array($usersResult, MYSQLI_ASSOC)){ 
     foreach ($usersRow as $id=>$name){ 
     echo "<option value=\"$id\""; 
     echo ">$name</option>\n"; 
     } 
    } 
    ?> 
    </select> 

助けがあれば助かります。

ありがとうございます。

+1

試してみます問題の中心に行く可能性のある明確な質問を... php、mysql、foreach、...実際の問題のようには見えません。ありがとう。 – TMS

答えて

5

mysqli_fetch_array()は、クエリ結果を配列に変換する関数です。つまり、通常の配列値と同じように値を表示できます。

<select id="dropdown" name="dropdown"> 
    <option value="select" selected="selected">Select</option> 
    <?php 
    while ($usersRow = mysqli_fetch_array($usersResult, MYSQLI_ASSOC)){ 


     echo "<option value=\"".$usersRow['id']."\""; 
     echo ">".$usersRow['name']."</option>\n"; 

    } 
    ?> 
    </select> 
+0

ありがとうございます。完璧に働いた。 –

1

foreachは必要ありません。 mysqli_fetch_array()はすでに連想配列を提供しています。各後行うフェッチ

// Assuming "id" is a numeric value 
printf('<option value="%d">%s</option>', $usersRow['id'], $usersRow['name']); 
+0

連想キーのみが必要な場合は、mysqli_fetch_assoc()を使うほうが(少しだけ)効率が良いことに注意してください。 – DaveRandom

0

foreachは不要です - 配列内の各列のすべての結果を返しますmysqli_fetch_arrayコマンドにwhileループを使用して - あなたはそうのようにそれを使用することができます:

while ($usersRow = mysqli_fetch_array($usersResult, MYSQLI_ASSOC)){ 
    echo "<option value=\"".$usersRow['id']."\""; 
    echo ">".$usersRow['name']."</option>\n"; 
} 
関連する問題