我目前正在尝试使用 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>';
}
我遇到的问题有三个:
- 代码仅从 SQL 的第一行开始打印
- 代码循环次数不等于用户记录数
- 当代码打印第一行的信息时,它仅打印每个字段的第一个字符并将它们相乘。
输出如下所示:
<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 都来自第一行的姓氏。希望这会有所帮助。最佳答案
引号可能会非常困惑,我总是喜欢在 echo block 之外设置变量。 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>";
}
关于PHP 未正确回显下拉菜单的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29993104/