【问题标题】:Limiting column for fetched data in phpphp中获取数据的限制列
【发布时间】:2015-03-25 00:10:55
【问题描述】:

我正在尝试使用 php 将提取的 mysql 数据放入表中。问题是我能够将获取的数据放入所有行或所有列中。我想做的是将获取的数据放入列格式,一旦使用 4 列,下一个数据应该从下一行开始,依此类推。

目前我正在使用下面的逻辑,但是我将所有内容都放在一个列中。

目标是将数据限制在页面大小,以便可以打印数据。

<div>
$result = mysql_query("SELECT * FROM master_data");

echo "<table border='1'>
<tr>
<th>Accounts</th>
</tr>";
echo "<tr>";
while($row = mysql_fetch_array($result))
{
echo "<td>";
echo "First Name:" . $row['First_Name'] . "</br>";
echo "Middle Name:" . $row['Middle_Name'] . "</br>";
echo "Last Name:" . $row['Last_Name'] . "</br>";
echo "</td>";
}
echo "</tr>";
echo "</table>"; 


mysql_close($con);
?></div>

【问题讨论】:

  • 使用PDO or mysqli
  • if ($count++ &gt;= 4) { start new row; $count = 0; },基本上。
  • 请告诉我们您想要什么类型的输出以及您的数据库结构。会有帮助的!
  • @MarcB Right side ++ 在比较之后 被评估,因此您最终每行会进行 5 次迭代。只是说。
  • @A.D.基本上每一列都包含基本信息,如姓名、地址等。只是关于每个人的小块信息。

标签: php mysql html-table rows


【解决方案1】:

如果我正确理解您的问题,您会想要执行以下操作:

保留一个计数器以查看您正在查看的号码记录 ($i)

$i = 0; // Your counter
while($row = mysql_fetch_array($result))
{
    // ...

在循环的每 4 次迭代中,输出类似于 &lt;/tr&gt;&lt;tr&gt; 的内容。

    if ($i % 4 == 0 && $i > 0) // Will return true if `$i` is a multiple of 4 and greater than 0
    {
        echo "</tr><tr>"; // Output your HTML to start a new row
    }

最后一点:正如其他人将指出的那样。您应该避免使用 MySQL 扩展。您应该改用 MySQLi 或 PDO。

【讨论】:

  • 你不仅应该检查 $i 是否是 4 的倍数,还要检查 $i 是否大于 0(否则你会在第一次运行时得到一个 ''当 $i 为 0): if ($i % 4 == 0 && $i>0)
  • 非常感谢 Jonathon,我会尽力让您知道。
【解决方案2】:
<div>
$result = mysql_query("SELECT * FROM master_data");

echo "<table border='1'>
<tr>
<th>Accounts</th>
</tr>";
echo "<tr>";
$i = 1;
while($row = mysql_fetch_array($result))
{
if($i == 4)
{
echo "<td>";
echo "First Name:" . $row['First_Name'] . "</br>";
echo "Middle Name:" . $row['Middle_Name'] . "</br>";
echo "Last Name:" . $row['Last_Name'] . "</br>";
echo "</td>";
$i=0;
}
$i++;
}
echo "</tr>";
echo "</table>"; 

mysql_close($con);
?>
</div>

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签