检索存储在php变量数组中的mysql表数据

时间:2013-10-24 03:13:17

标签: php mysql variables foreach while-loop

我与数据库的连接成功。我现在将表中的所有数据都存储为名为$ data的php变量中的数组。我试图从这个变量中提取三行并用html显示它们。

以下是我的代码的样子(除了要删除的连接信息):

    <?php 
    $data = mysql_query("SELECT * FROM specs")
    or die(mysql_error());
    while ($row = mysql_fetch_assoc($data)) {
    $rows[] = $row;
    ?>

我知道我可以从这个变量中提取单个数据并通过输入这样的代码成功地将其插入到html中(例如):

    <table cellpadding="0" cellspacing="0" border="0">
      <tr>
        <td>Model: <?php echo $row['name'];?></td>
      </tr>
    </table>

但我的问题是我想在数据库中显示三个独立的数据行,作为html表中的三个单独的列。 (希望有意义)

我已经研究了如何使用foreach和while进行此操作,但我不太确定我哪里出错了。

我希望有人能够对此有所了解,因为我已经阅读了关于foreach循环的内容,而且,我仍然被卡住了!我也听说mysql_query已被弃用,但由于我们的网络服务器仍在使用旧版本的php和mysql,并且不打算很快更新,因此不排除使用它。

很抱歉,如果我不是所有人都在我的帖子中 - 已经很晚了,我很累。感谢您的帮助!如果有人有疑问,我会留意这件事。

2 个答案:

答案 0 :(得分:0)

这将在一个表中打印数组,每行包含数组的3个元素。

echo "<table>";
for ($i = 0; $i < count($rows); $i += 3) {
    echo "<tr>";
    for ($j = 0; $j < 3; $j++) {
        if (isset($rows[$i+$j]) {
            echo "<td>Model: {$rows[$i+$j]['name']}</td>";
        }
    }
    echo "</tr>";
}
echo "</table>";

答案 1 :(得分:0)

将SQL限制为三行更简单,然后直接回显所有传入的行,而无需先添加到数组中。这会浪费资源。

<?php 
    echo "<table>";

    $data = mysql_query("SELECT * FROM specs LIMIT 3")
      or die(mysql_error());

    while ($row = mysql_fetch_assoc($data)) 
        echo '<tr></td>', $row['name'], '</td></tr>';

    echo "</table>";
?>
啊,但现在我看到这是一年前的问题。我希望你能在此期间学到很多东西。