PHP没有正确回放值下降

时间:2015-05-01 18:47:04

标签: php html mysql select drop-down-menu

我目前正在尝试使用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都来自第一行的姓氏。希望这会有所帮助。

3 个答案:

答案 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