【问题标题】:Printing an array in php from mysql从mysql在php中打印一个数组
【发布时间】:2015-07-14 14:44:55
【问题描述】:

几周前刚尝试做一个教程,遇到了一些麻烦。

我正在尝试从 mysql 内部的数组中检索所有数据。到目前为止,这是我的代码,有点工作。

include('db_conn.php'); //db connection


$query = "SELECT * FROM kit202_product";
$result = $mysqli->query($query);

while ($row = mysqli_fetch_array($result) )
{

    printf("%s %s %d %s\n", $row[0], $row[1],$row[2], $row[3]); 
}

该表格看起来像this

虽然代码确实有效(它会打印出每个值),但我如何组织它以使其看起来像图片中的那样? 我猜我需要以某种方式打印到表格中?

谷歌搜索并没有真正让我到任何地方。只有真正展示了如何打印数组的一行。

【问题讨论】:

  • 一张表格将复制您图像上的表格。你应该用<tr> and <td>标签在<table>标签内循环你的行。
  • 相关 >>>下向右看一眼
  • 这里的所有答案都很好。但是要小心他们如何关闭和打开 php 标签。并且还可以使用 css 设计您的表格以达到您想要的设计
  • “谷歌搜索并没有真正把我带到任何地方。” - 谷歌这个“mysql html 表”。如果这不能给你带来结果,我不知道会怎样。

标签: php mysql arrays html-table


【解决方案1】:

您可以通过在<tr>s 中循环结果来在表格中完成此操作

<?php 
include('db_conn.php'); //db connection


$query = "SELECT * FROM kit202_product";
$result = $mysqli->query($query);
?>
<h1>Search Product Details</h1>
<table>
<thead>
    <tr>
        <th>ID</th>
        <th>Name</th>
        <th>Price</th>
        <th>Description</th>
    </tr>
</thead>
<tbody>
    <?php
    while ($row = mysqli_fetch_array($result) )
    {
    ?>
    <tr>
        <?php 
        echo "<td>" . $row[0] . "</td>";
        echo "<td>" . $row[1] . "</td>";
        echo "<td>" . $row[2] . "</td>";
        echo "<td>" . $row[3] . "</td>";
        ?>
    </tr>
    <?php
    }
    ?>
</tbody>
</table>

【讨论】:

  • 感谢这工作。我尝试做 echo "
  • " $row [1] "
  • " 但这不起作用。
  • 我认为&lt;li&gt; 标签不适用于表格。您可以在&lt;ul&gt;&lt;ol&gt; 中执行此操作,但这与您的问题所说的不同。
  • 【解决方案2】:
    <?php
    include('db_conn.php'); //db connection
    
    
    $query = "SELECT * FROM kit202_product";
    $result = $mysqli->query($query);
    ?>
    <TABLE BORDER="5"    WIDTH="50%"   CELLPADDING="4" CELLSPACING="3">
       <TR>
          <TH COLSPAN="2"><BR><H3>Search Product Detail</H3>
          </TH>
       </TR>
       <TR>
          <TH>ID</TH>
          <TH>Name</TH>
          <TH>Price</TH>
          <TH>Description</TH>
       </TR>
    <?php 
    while ($row = mysqli_fetch_array($result) )
    {
        echo "<TR ALIGN='CENTER'>
          <TD>$row[0]</TD>
          <TD>$row[1]</TD>
          <TD>$row[2]</TD>
          <TD>$row[3]</TD>
       </TR>"; 
    }
    
    ?>
    
    </TABLE>
    

    【讨论】:

    • 我认为你必须将这一行 echo "&lt;TR ALIGN="CENTER"&gt; 更改为 echo "&lt;TR ALIGN='CENTER'&gt; 否则会产生错误。
    • @ShaifulIslam 同意;或echo "&lt;TR ALIGN=\"CENTER\"&gt; 也可以接受,转义双引号。
    【解决方案3】:
    include('db_conn.php'); //db connection
    
    
    $query = "SELECT * FROM kit202_product";
    $result = $mysqli->query($query);
    
    echo "<table>";
    echo "<tr>";
        echo "<th>ID</th>";
        echo "<th>Name</th>";
        echo "<th>Price</th>";
        echo "<th>Description</th>";
    echo "</tr>";
        while ($row = mysqli_fetch_array($result) )
        {
        echo "<tr>";
            echo "<td>".$row[0]."</td>";
            echo "<td>".$row[1]."</td>";
            echo "<td>".$row[2]."</td>";
            echo "<td>".$row[3]."</td>"; 
        echo "</tr>";
        }
    echo "</table>";
    

    用 CSS 设计你的表格

    【讨论】:

    • 我不好,第一次在这里回答。应该先在我的编辑器上尝试。
    • 如果它只是一个字符串,使用单引号,例如:echo '';
    • @Clarence 改进您的答案。 echo "&lt;td&gt;".$row[0], $row[1],$row[2], $row[3]."&lt;/td&gt;"; 这一行可能会出错,只会显示一列
    • @Shaiful Islam,Kevin Paul Kalis 先生已经给出了正确答案。 :)
    • 你已经回答了,应该把它改正。SO 欢迎许多正确的答案,除非它重复。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签