-2

この配列を印刷しようとしましたが、うまくいきません...コンボボックスが空です。コンボボックスに名前のプロパティのみを出力し、同時にオプションの値で NumClient を取得するにはどうすればよいですか?

私のデータベースには 30 レコードのクライアントのテーブルがあり、id(NumClient) と name(Name) を取得してコンボ ボックスに入れたいのですが、Name と id(NumClient) だけを印刷したいので、たとえば、プロパティ値を使用してオプションのタグに追加したい

<option value="$array["NumClient"]">$array["Name"]</option>
<option value="1">Layana</option>

何か案は?

<?php

$conn = mysql_connect("localhost", "root","") or die(mysql_error());
$db = mysql_select_db("bd_musique") or die(mysql_error());

$query="SELECT * from client";

$result = mysql_query($query) or die(mysql_error());

echo $query;

$array=array();

$i=0;
while ($rows = mysql_fetch_array($result)){
    $array=array($i,"NumClient"=>$rows["NumClient"], "Name"=>$rows["Name"]);
    $i++;
}

mysql_close($conn);

?>
 <select class="input-small" name="Client">
  <?php
    foreach($array as $b){
    print("<option value='$array[$b]['NumClient']'>".$array[$b]["Name"]."</option>"."  <br>");
    }           
   ?>
      /*    
       foreach($array as $cle=> $b){
       echo("<option value='$b'>".$cle.$b."</option>"."<br>");
        }
*/

</select>

乾杯

4

2 に答える 2

1

3 つの異なる配列を使用する代わりに、ループを使用して結果セットを取得できます。

while ($rows = mysql_fetch_array($result)){
    $array[] = array(
       'NumClient' => $rows["NumClient"],
       'Name' => $rows["Name"]
    );
}

//Print output
print '<select'>;
foreach($array as $value) {
   print("<option value={$value['NumClient']}>{$value['Name']}</option>");
}
print '</select>';

文字列 "" 内で {} を使用すると、オブジェクト/配列を出力できます。

アップデート

私はローカルテストを行いました、これはコードです

$array[] = array(
   'NumClient' => 1,
   'Name' => 'Juan'
);

$array[] = array(
   'NumClient' => 2,
   'Name' => 'Luis'
);

$array[] = array(
   'NumClient' => 3,
   'Name' => 'Maria'
);



print '<select>';
foreach($array as $value) {
   print("<option value='{$value['NumClient']}'>{$value['Name']}</option>");
}
print '</select>';

これが実際の出力です![レンダリングされたコンボボックス][1]

データソースを確認するには、以前に何か他のことをしている可能性があります

これが結果の画像です i.stack.imgur.com/ilL6y.png

于 2013-03-31T17:20:46.033 に答える
1

これが解決策です、最終的に私はそれをしました:

<?php
    $conn = mysql_connect("localhost", "root", "");
    mysql_select_db("dbmusique", $conn);

    $query = "SELECT * from client";
    $result = mysql_query($query, $conn) or die(mysql_error());
    $num= mysql_num_rows($result); 


    if ($num> 0) {
     while ($row = mysql_fetch_assoc($result)) {
        $array[] = array(
           'NumClient' => $row["NumClient"],
           'Name' => $row["Name"]
        );
     }
    }
    ?>  

<form name="form" action="next.php" method="get">
        <select name="numClient">
        <?php
        foreach($array as $value) {
          print("<option value=\"{$value['NumClient']}\">{$value['Name']}</option>");
        }
        ?>
        </select>
        <input type="submit" value="Send" />
</form>

次の.php:

<?php
$NumClient=$_GET["numClient"];
echo $NumClient;
?>
于 2013-03-31T20:13:44.940 に答える