-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>';

这是实际输出![Rendered combobox][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 回答