while循环不会显示第一行

时间:2013-04-19 03:07:50

标签: php mysql while-loop option

我遇到一个简单的问题。我用Google搜索并找到了这么多资源,但在我看来没什么用处。

这里我运行了一个查询并将其作为选择菜单输出。但是第一行的值没有显示出来。

<?php
$query = mysql_query("SELECT * FROM `subcategory` ORDER BY `Category_id`");             
while($row = mysql_fetch_array($query)){
$subcategory_title = $row['Subcategory_name'];
$subcategory_id = $row['Subcategory_id'];
$subcategory_id = $subcategory_id*10;

$selectMenu .= "<option value='$subcategory_id'>$subcategory_title</option>";
}
?>

并且输出在

<select name='' class=''>
<option disabled='disabled'>Choose a Topic</option>
<?php echo $selectMenu; ?>
</select>

我回复了$subcategory_title$subcategory_id,这里的第一行值显示在列表菜单中是否不是。另一个脚本中的相同代码工作正常。我不明白。问题是什么?

2 个答案:

答案 0 :(得分:0)

代码链接:http://pastebin.com/iGqitNe7

试试这个......

<?php

 $qidInfo = "<tr>
                <td width='20%'>Exam Topic:</td>
                <td width='80%'><label>
                <select class='exam_name' name='exam_name' id='exam_name'>
                <option disabled='disabled'>Choose a Topic</option>".$selectMenu."
            </select>...rest of the string...";
?>

答案 1 :(得分:0)

为什么不这样用PDO RIGHT方式呢? :(可能有一些语法错误未经测试btw)

$sql = "SELECT * FROM `subcategory` ORDER BY `Category_id`";
$query = $pdo->prepare($sql);
$query->execute();

if($query) {
   $row = $query->fetchAll(PDO::FETCH_ASSOC);
   $selectmenu = "";
   foreach ($row as $value) {
        $selectMenu .= "<option value=<?php echo $value['subcategory_id']*10 ?>><?php echo $value['subcategory_title'] ?></option>";

    }
}

这是未经测试的代码,但我认为这应该有效。祝你有任何担忧,祝你好运。

有关设置PDO的帮助,请参阅this answer.您在问自己为什么要使用PDO?正如上面的评论所述,新代码应该不惜一切代价避免使用Mysql_函数,因为它们被PHP社区查看,并将从php 5.5中删除。

阅读有关PHP PDO here

的更多信息