过去几天我一直在做一些事情,但这一小段代码总是抛出一个意想不到的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;发布于 2011-04-27 01:17:02
您可以使用短标记来使其更具可读性,并且更不容易出错。
<?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; ?>发布于 2011-04-27 01:08:52
试试这个。
我认为它可能已经失效了,因为一旦你解析了第一个站点的类别结果集,下一次调用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>"https://stackoverflow.com/questions/5793500
复制相似问题