0

クエリの結果をエコーする単純なテーブルと、テーブル内の行の色を交互に変更する少しの PHP があります (IE8 で動作するために必要なため、CSS3 を使用できませんでした)。ただし、レコードが返されない場合もあります。表示するレコードがない場合に「なし」と表示されるように、コードを修正する最善の方法は何ですか。または、代わりに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 に答える