这是我的代码:
echo '<table class="class1"><tbody>';
while ($row1=mysql_fetch_array($result1)){
echo '<tr><td>'.$row1['firstname'].'</td><td>'.$row1['lastname'].'</td></tr>';
}
echo '</tbody></table>';
当我使用HTML验证器时,它会返回一个正确的错误"trimming empty <tbody>
"。这种情况发生在选择了0行的情况下。因此,代码看起来像<table><tbody></tbody></table>
,这并不好。
我正在考虑排除此错误的最佳方法(当有0行或类似的行时,根本不显示此表(,但我不知道如何做到这一点的最佳方法。
在选择显示echo '<table class="class1"><tbody>';
之前,如何检查if mysql_num_rows()>0
?有更好的主意吗?还是这个好?
使用mysql_num_rows($result)
检查查询是否有任何结果。如果为true,则创建一个表+行。否则,什么也不做,或者添加一个替代块:
if (mysql_num_rows($result) > 0) {
echo '<table class="class1"><tbody>';
while ($row1=mysql_fetch_array($result1)){
echo '<tr><td>'.$row1['firstname'].'</td><td>'.$row1['lastname'].'</td></tr>';
}
echo '</tbody></table>';
} else { //Optional
echo '<!-- Anything -->';
}
你的计划非常好。别忘了包括结束echo '</tbody></table>';
在您的if
检查中。
不确定这是否是最佳实践,但这应该有效:
$string = "";
while ($row1=mysql_fetch_array($result1)){
$string .= '<tr><td>'.$row1['firstname'].'</td><td>'.$row1['lastname'].'</td></tr>';
}
if ($string!="") {
echo '<table class="class1"><tbody>';
echo $string;
echo '</tbody></table>';
}