0

我有一个简单的表,它回显查询的结果,还有一些 PHP 可以交替表中行的颜色(不能使用 CSS3,因为我需要它来使用 IE8)和我所拥有的,工作。但是,在某些情况下,不会返回任何记录。修改代码的最佳方法是什么,这样如果没有要显示的记录,它只会说“无”。或者这是否可以通过 mysql 查询代替.....

<?php $count = 0; do { ?>
      <tr>
      <?php $count++;?>
        <td colspan = "5" class="<?php echo (($count % 2) == 0) ? 'even' : 'odd'; ?>">
            <?php echo $row_RecordSet1['result']; ?>
        </td>
      </tr>
      <?php } while ($row_RecordSet1 = mysql_fetch_assoc($RecordSet1)); ?>`
4

3 回答 3

0

试图坚持你的编码风格,我想这就是我会做的......

<?php $count = 0; ?>
<?php while ($row_RecordSet1 = mysql_fetch_assoc($RecordSet1)) { ?>
    <?php $count++;?>
    <tr>
      <td colspan="5" class="<?php echo (($count % 2) == 0) ? 'even' : 'odd'; ?>"><?php echo $row_RecordSet1['result']; ?></td>
    </tr>
<?php } ?>
<?php if ($count == 0) { ?>
    <tr>
        <td colspan="5">No results found.</td>
    </tr>
<?php } ?>
于 2013-05-30T13:50:50.340 回答
0

首先,我建议您使用while循环,您仍然可以维护您的$count变量。

$count = 0;
while($row_RecordSet1 = mysql_fetch_assoc($RecordSet1)){
    //this way, if the recordset is empty -- the loop will never run
    ++$count;
    //your normal processing continues here
}
if($count === 0){
    //there was no content or result from the database
    echo '<tr><td>None</td></tr>';
}

我相信这应该可以解决您的问题。

于 2013-05-30T13:50:58.440 回答
0

在显示结果之前,您可以使用mysql_num_rows检查行数(顺便说一句,请仔细阅读有关 mysql 扩展的红色警告!)

if(mysql_num_rows($RecordSet1) == 0) {//no results
   //display none
} else {
   //display your results
}
于 2013-05-30T15:11:16.923 回答