【问题标题】:Manipulating MySQL Results with HTML Table using PHP使用 PHP 处理带有 HTML 表的 MySQL 结果
【发布时间】:2015-03-13 18:53:26
【问题描述】:

我希望有人可以帮助我。我正在创建一个硬件网页 - 在内容部分将显示从数据库中读取的主要类别。我希望将结果读取为每行 3 个和 2 列,因为有 6 个类别。类似于我下面的内容。

| CAT1 | CAT2 | CAT3 |
| CAT4 | CAT5 | CAT6 |

我目前将它显示在列中,但它只是在所有列中复制相同的数据。即

| CAT1 | CAT1 | CAT1 |
| CAT2 | CAT2 | CAT2 |

如果有人有任何想法,请告诉我。

这是我正在使用的代码:

$query = "SELECT distinct category FROM listings";
$result = mysql_query($query);

echo "<table>";

while($row = mysql_fetch_array($result)){
echo "<tr><td>" . $row['category'] . "</td><td>" . $row['category'] . "</td></tr>";
}

echo "</table>";

【问题讨论】:

    标签: php html mysql html-table


    【解决方案1】:

    问题在于您的 while 语句对每个 &lt;td&gt; 使用同一行,您可以使用计数器来检查何时放置新行:

    $catNo = 1;
    
    echo "<table> <tr>";
    
    while($row = mysql_fetch_array($result)) {
        echo "<td>" . $row['category'] . "</td>";
        $catNo++;
        if ($catNo == 3) {
            echo "</tr><tr>"
            //if you end up having more than six categories reset $catNo
            $catNo = 1;
        }
    
    }
    
    echo "</tr> </table>";
    

    【讨论】:

      【解决方案2】:

      您遇到的问题是您在每列中打印相同的值,因为 $row 没有被移动到下一次迭代。鉴于您的查询输出,您可以执行以下操作:

      echo "<table><tr>";
      $idx = 0;
      while($row = mysql_fetch_array($result)) {
         if(++$idx % 3 == 0) {
            echo "</tr><tr>";
         }
         echo "<td>" . $row['category'] . "</td>";
      }
      echo "</tr></table>";
      

      % 运算符是一个模运算符,它返回运算符除以操作数的余数。本例中$idx除以3,所以回显了3行"&lt;/tr&gt;&lt;tr&gt;"后,循环结束后全部关闭。

      【讨论】:

        【解决方案3】:

        这适用于所有类别,只要您愿意。

        $catNo = 1;
        
        echo "<table> <tr>";
        
        while($row = mysql_fetch_array($result)){
            echo "<td>" . $row['category'] . "</td>";
            if ($catNo % 3 == 0) {
               echo "</tr><tr>"
            }
            $catNo++;
        }
        
        echo "</tr> </table>";
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-11-22
          • 2015-09-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多