PHP 没有正确回显下拉菜单的值

PHP not Echoing Values for Drop Down Correctly

我目前正在尝试使用 PHP 和 MYSQL 从头开始​​创建票务系统。我想要一个下拉列表,允许您根据 MYSQL 中的用户列表向用户分配票证。目前这是我必须使用选项填充的代码:

$sqlq1 = "SELECT fname, lname FROM ticket_users";
$query = mysql_query($sqlq1);
$array = mysql_fetch_array($query);


foreach($array as $row){
echo '<option value ='."$row[fname]".'>'.$row[fname].$row[lname].'</option>';
}

我遇到的问题有三方面:

  1. 代码仅从 SQL
  2. 的第一行开始打印
  3. 代码不循环等于用户记录数
  4. 当代码打印第一行的信息时,它只打印每个字段的第一个字符并将它们相乘。

输出如下所示:

<h3> Assign To: <select name="assignee">
<option value =J>JJ</option>
<option value =J>JJ</option>
<option value =F>FF</option>
<option value =F>FF</option>

</select></h3>

这就是数组的 print_r 的样子:

Array ( [0] => Jim [fname] => Jim [1] => Frail [lname] => Frail )

这是 var 转储:

array(4) { [0]=> string(3) "Jim" ["fname"]=> string(3) "Jim" [1]=> string(5) "Frail" ["lname"]=> string(5) "Frail" }

我什至不确定如何寻找这个问题的解决方案,所以希望我的标题也能帮助其他人找到解决方案。

在此先感谢您的帮助。

PS。在查看它之后,我已经能够确定 J 全部来自第一行的名字,所有 F 都来自第一行的姓氏。希望这有帮助。

您需要一个 while 循环顶部遍历您的记录集。这样你每行拉一条记录并回显

$sqlq1 = "SELECT fname, lname FROM ticket_users";
$query = mysql_query($sqlq1);

while($row = mysql_fetch_array($query)){
    echo '<option value ="' . $row['fname'] . '">' . $row['fname'] . $row['lname'] . '</option>';
}

引用可能会很混乱,我总是喜欢在 echo 块之外设置变量。 while循环节省了一些代码。

试试这个:

$sqlq1 = "SELECT fname, lname FROM ticket_users";
$query = mysql_query($sqlq1);

while($row = mysql_fetch_array($query)){
 $fname =  $row['fname']; // you missed the single-quotes
 $lname =  $row['lname'];
echo "<option value ='$fname'>$fname $lname</option>";
}

mysql_fetch_array 将结果行作为关联数组、数值数组或两者获取。如果你想获取查询返回的所有记录,你需要使用 while 循环类似于:

 while($array = mysql_fetch_array($query)){
    echo '<option value ='."$array[fname]".'>'.$array[fname].$array[lname].'</opton>';
    }