0

データセットをループしたい。8セルを5行にしたい。私はこれに頭を包むことができないようです。私のコードは、データセット内の各項目を繰り返すだけです。

この$row['URL'] [0]のようなことをする必要がありますか?

while($row = mysql_fetch_array($result))
   {
   echo "<tr>";
   echo "<td><a href='" . $row['URL'] . "'><img src='" . $row['IMG'] . "'/></a></td>";
   echo "<td><a href='" . $row['URL'] . "'><img src='" . $row['IMG'] . "'/></a></td>";
   echo "<td><a href='" . $row['URL'] . "'><img src='" . $row['IMG'] . "'/></a></td>";
   echo "<td><a href='" . $row['URL'] . "'><img src='" . $row['IMG'] . "'/></a></td>";
   echo "<td><a href='" . $row['URL'] . "'><img src='" . $row['IMG'] . "'/></a></td>";
   echo "<td><a href='" . $row['URL'] . "'><img src='" . $row['IMG'] . "'/></a></td>";
   echo "<td><a href='" . $row['URL'] . "'><img src='" . $row['IMG'] . "'/></a></td>";
   echo "<td><a href='" . $row['URL'] . "'><img src='" . $row['IMG'] . "'/></a></td>";
   echo "</tr>";
   }
 echo "</table>";
4

2 に答える 2

3

まず、SQLクエリで結果セットを制限し、mysql_*関数が非推奨になっているため、PDOまたはmysqliに切り替える必要があります。

次に、次のようなことを行うことができます。

echo '<table><tr>';
$count = 0;
while (...)
{
  $count++;   
  echo "<td><a href='" . $row['URL'] . "'><img src='" . $row['IMG'] . "'/></a></td>";
  if ($count % 5 === 0)
  {
    echo '</tr><tr>';
  }
}
echo ' </tr></table>';

最後の行を完成させ、最後に空の行を避けるために、おそらくこれを少し整理する必要がありますが、これは単なる一般的な考え方です。

于 2012-08-31T00:46:57.883 に答える
1

試した:

echo "<tr>";
while($row = mysql_fetch_array($result))
{
   echo "<td><a href='" . $row['URL'] . "'><img src='" . $row['IMG'] . "'/></a></td>";
}
echo "</tr>";
echo "</table>";

?

説明:mysql_fetch_arrayサイクルごとに 1 つの結果を返します。したがって、1 つのサイクルで全員ではなく、ループごとに 1 回結果を出力します。

于 2012-08-31T00:36:58.540 に答える