每行PHP 4条记录

时间:2011-12-08 15:06:08

标签: php mysql

我使用此代码每行显示4条记录,但它以荒谬的方式显示我的代码。即

a b c d
e f g h
i j k l 
.......

但我的代码显示输出为。我不知道为什么我是一个新的PHP程序员

a b c d
e
f g h i 
j 
k l m n
.......

我的代码是

<?php

$con = mysql_connect("localhost","root","abc123");
if (!$con)
{
   die('Could not connect: ' . mysql_error());
}
mysql_select_db("mydb", $con);
$result = mysql_query("SELECT * FROM Persons");
echo "<table border='1'>";
$int = 0;
while($row = mysql_fetch_array($result))
{
   $int++;
   if ($int%5==0)
   {
      echo "<tr>";
   }
   echo "<td>" . $row['FirstName'] . "</td>";
   if ($int%5==0)
   {
      echo "</tr>";
   }
}
echo "</table>";
mysql_close($con);

?>

提前感谢

4 个答案:

答案 0 :(得分:0)

@ h_a86 ::看一下输出的html代码。根据你的代码,你不要在第一个循环中打开<tr>。 (int = 0; $int++; ($int==1) != (%5==0))只需将$ int ++移动到while的末尾

答案 1 :(得分:0)

你除以5而不是4。 尝试

[edit]添加了完整的snippit

$int = 0;
while($row = mysql_fetch_array($result))
{
   if ($int%4==0)
   {
      echo "<tr>";
   }
   echo "<td>" . $row['FirstName'] . "</td>";
   if ($int%4==0)
   {
      echo "</tr>";
   }
   $int++;
}

答案 2 :(得分:0)

怎么样,

$int = 0;
while($row = mysql_fetch_array($result))
{

   if ($int%5==0)
   {
      echo "<tr>";
   }
   echo "<td>" . $row['FirstName'] . "</td>";
   if ($int%5==0)
   {
      echo "</tr>";
   }
   $int++;
}

在关闭片段之前放置$int++

答案 3 :(得分:0)

您的条件if( $int%5 == 0 ){...}告诉您的代码在收到的每5条记录周围包裹<TR>。其他记录不受影响。

此行为会产生您所看到的内容:

<table>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<tr><td>5</td></tr>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
<tr><td>10</td></tr>
<td>11</td>
<td>12</td>
</table>

您需要做的是告诉代码结束上一个<TR>并开始新的<TR>

尝试类似:

<?php
echo "<table>";
echo "<tr>";

$count = 1;
while($row = mysql_fetch_array($result))
{
   if ( $count > 0 && $count % 4 == 0 )
   {
      echo "</tr><tr>";
   }
   $count++;

   echo "<td>" . $row['FirstName'] . "</td>";
}

echo "</tr>";
echo "</table>";
?>

哪个应该产生:

<table>
<tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
</tr><tr>
    <td>5</td>
    <td>6</td>
    <td>7</td>
    <td>8</td>
</tr><tr>
    <td>9</td>
    <td>10</td>
    <td>11</td>
    <td>12</td>
</tr>
</table>