过去几天我一直在做一些事情,但这一段代码永远会引发一个意想不到的T_ECHO。我的朋友似乎无法发现任何问题,我处于耐心的边缘。即使删除了嵌套的while循环,它仍然会抛出错误,我切换到while:endwhile;语法以及我仍然得到它。我肯定答案是盯着我,但我可能看不到它。
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)):
echo "<tr>";
echo "<td>". $row["site_description"] ."</td>";
echo "<td>". $row["url"] ."</td>";
echo "<td><select>";
while ($roar = mysql_fetch_array($categories, MYSQL_ASSOC)):
echo "<option value=\"". $roar["category"] ."\">". $roar["category"] ."</option>";
endwhile;
echo "</select></td>";
echo "</tr>";
endwhile;
答案 0 :(得分:2)
您可以使用短标记使其更具可读性,并且可能不易出错。
<?php while ($row = mysql_fetch_array($result, MYSQL_ASSOC)): ?>
<tr>
<td><?= $row["site_description"] ?></td>
<td><?= $row["url"] ?></td>
<td>
<select>
<?php while ($roar = mysql_fetch_array($categories, MYSQL_ASSOC)): ?>
<option><?= $roar["category"] ?></option>
<?php endwhile; ?>
</select>
</td>
</tr>
<?php endwhile; ?>
答案 1 :(得分:0)
试试这个......
我认为它可能已经崩溃了,因为一旦你解析了类别结果集,对于第一个站点,它在下次调用mysql_fetch_array时没有任何结果。因此,预先执行此操作并将结果弹出到变量中即可修复。
我在字符串中添加了“\ t”和“\ n”,以便在视图源中巧妙地制作html格式。
$result = mysql_query("select * from tmp_sites");
$categories = mysql_query("select * from tmp_cats");
$select_options = "";
while ($roar = mysql_fetch_array($categories, MYSQL_ASSOC)):
$select_options .= "\t\t<option value=\"". $roar["category"] ."\">". $roar["category"] ."</option>\n";
endwhile;
echo "<table>";
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)):
echo "\t<tr>\n";
echo "\t\t<td>". $row["site_description"] ."</td>\n";
echo "\t\t<td>". $row["url"] ."</td>\n";
echo "\t\t<td><select>\n";
echo $select_options;
echo "\t\t</select></td>\n";
echo "\t</tr>\n";
endwhile;
echo "</table>"