gpt4 book ai didi

mysql_fetch_array 和 while 循环意外返回所有其他记录

转载 作者:行者123 更新时间:2023-11-30 00:56:55 27 4
gpt4 key购买 nike

问题标题说明了一切:我想循环遍历每一行,但我只得到每隔一行。有趣的是,当我使用 mysql_num_rows 时,如下所示,它得到了正确的计数。怎么了?

$query = "SELECT * FROM `staff`";
$result = mysql_query($query) or die(mysql_error());
$count = mysql_num_rows($result);
echo '<form action="" method="post"><ul>';
while ($row = mysql_fetch_array($result)){
echo '<li>' . $row['name'] . '
<select>
';
$i = 1;
while ($i <= $count) {
echo '<option value="' . $i . '">' . $i . '</option>';
$i++;
}'
</select>
</li>';
}

难道是因为我也在数数?我也需要数一数。这是一个重新排序应用程序,因此我需要能够更改每个人的位置,但选项只能是可用位置的总数。也许有更合乎逻辑的方法来做到这一点?

最佳答案

您没有输出结束 </select> 的字符串标签:

                while ($i <= $count) {
echo '<option value="' . $i . '">' . $i . '</option>';
$i++;
}'
'// <strong>^--- NB missing <em>echo</em></strong>

就目前情况而言,PHP 目前将字符串解析为不执行任何操作的文字表达式。

因此,生成的 HTML 将如下所示:

<li>foo
<select>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<li>bar
<select>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<li>baz
<select>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>

如何呈现这种损坏的 HTML 将取决于浏览器。您的浏览器似乎只生成所有其他选择框?

关于mysql_fetch_array 和 while 循环意外返回所有其他记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20474421/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com