0

</tr><tr>ほとんどの場合、 6 つの結果ごとに追加しようとしている以下のようなコードがあります。

echo "<table><tr>";

$query="SELECT * WHERE id='$id' ORDER BY date ASC";
$result=mysql_query($query);

if (mysql_num_rows($result) > 0) {
while($rts = mysql_fetch_array($result)){

$cdata1 = $rts['cdata1'];
$cdata2 = $rts['cdata2'];

echo "<td>$cdata1 and $cdata2</td>";

}
}else{
echo "<td>no results</td>";
}
echo "</tr></table>";
4

1 に答える 1

1
echo "<table><tr>";

$query="SELECT * WHERE id='$id' ORDER BY date ASC";
$result=mysql_query($query);

$i = 0;

if (mysql_num_rows($result) > 0) {
while($rts = mysql_fetch_array($result)){

$cdata1 = $rts['cdata1'];
$cdata2 = $rts['cdata2'];

echo "<td>$cdata1 and $cdata2</td>";

if(++$i % 6 == 0) {
   echo '</tr><tr>';
}

}
}else{
echo "<td>no results</td>";
}
echo "</tr></table>";

UPD:

Whats means if(++$i % 6 == 0) code:

  1. ++$i equals $i = $i + 1;
  2. $i % 6 means $i modulo 6
  3. If $i modulo 6 equals 0 then echo </tr><tr>

So we can write it as:

$i = $i + 1;
if($i % 6 == 0) {
   echo '</tr><tr>';
}

http://php.net/manual/en/internals2.opcodes.mod.php

http://php.net/manual/en/language.operators.increment.php

于 2011-02-27T11:13:43.577 に答える