我目前正在尝试使用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>';
}
我遇到的问题有三个方面:
输出如下:
<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都来自第一行的姓氏。希望这会有所帮助。
答案 0 :(得分:1)
引用可能非常混乱,我总是喜欢在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>";
}
答案 1 :(得分:0)
您的记录集需要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>';
}
答案 2 :(得分:0)
mysql_fetch_array将结果行作为关联数组,数字数组或两者进行提取。如果要获取查询返回的所有记录,则需要使用while循环,类似于:
user=> (doc +)
-------------------------
clojure.core/+
([] [x] [x y] [x y & more])
Returns the sum of nums. (+) returns 0. Does not auto-promote
longs, will throw on overflow. See also: +'
nil
user=> (clojure.tools.namespace.repl/refresh-all)
(...namespaces...)
user=> (doc +)
-------------------------
clojure.core/+
([] [x] [x y] [x y & more])
Returns the sum of nums. (+) returns 0. Does not auto-promote
longs, will throw on overflow. See also: +'
nil