-4

我正在尝试将 MYSQL 数据库中的结果排列到 html 表中,但是当我这样做时,它似乎每行显示一个项目(1 列)

这是我的代码

<?php 

$catagory=$_GET["q"];

$con = mysql_connect("localhost","cl49-XXX","XXX");
if (!$con) 
  {
   die('Could not connect: ' . mysql_error());
   }

mysql_select_db("cl49-XXX", $con)or die( "Unable to select database");

$result=mysql_query("SELECT * FROM products WHERE catagory  = '$catagory' ")or die('You need enter a catagoryE ' );
while($row = mysql_fetch_array($result)) {
  $prodname=$row['prodname'];
  $prodID=$row['prodID'];
  echo"
  <table>
  <tr>
  <td>
  <b>$prodname </b><br>
  Product ID: $prodID<br /> 
 <img src='userpics/$prodID.jpg' height='200' width='200'></td></table> ";
}
?>

我想要一个有 3 列而不是 1 列的表?

4

4 回答 4

0

用这个替换你的while循环

?>
<table>
    <?php
    while($row = mysql_fetch_array($result))
    {
        $prodname = $row['prodname'];
        $prodID = $row['prodID'];
        echo "
        <tr>
            <td><b>$prodname </b></td>
            <td>Product ID: $prodID</td>
            <td><img src='userpics/$prodID.jpg' height='200' width='200'></td>
        </tr>";
    }
    ?>
<table>

然后阅读 html 表格的工作原理

更新 做你想做的事是使用表格的一种非常奇怪的方式,但是如果这是你想要的,这样的事情应该可以工作;

?>
<table>
    <?php
    for ($i = 0; $i < mysql_num_rows($result); $i++)
    {
        $row = mysql_fetch_array($result);

        $prodname = $row['prodname'];
        $prodID = $row['prodID'];
        if ($i % 3 == 0) {
            echo "<tr>";
        }
        echo "
        <td>
            <b>$prodname </b><br />
            Product ID: $prodID<br />
            <img src='userpics/$prodID.jpg' height='200' width='200'>
        </td>";

        if (($i + 1) % 3 == 0 || ($i + 1) == mysql_num_rows($result)) {
            echo "</tr>";
        }
    }
    ?>
<table>

这应该每行产生 3 列,如果您想要更多,请在两次出现时更改$i % 3 == 0$i % 4 == 0

于 2013-08-02T10:02:35.673 回答
0

您需要编辑代码如下:

  <table>
     <tr>
      <th>Name</th>
      <th>Id</th>
      <th>Img</th>
   </tr>
 <?php 
 while($row = mysql_fetch_array($result)) {
     $prodname=$row['prodname'];
      $prodID=$row['prodID'];
     echo"
  <tr>
      <td>$prodname </td>
      <td> $prodID</td> 
     <td><img src='userpics/$prodID.jpg' height='200' width='200'>
      </td></tr> ";
 }?>

于 2013-08-02T10:03:54.540 回答
0

那么您可能应该创建 3 列。

您只创建 1 列,您的代码稍微清理了一下:

 <table>
   <tr>
     <td>
       <b>$prodname </b><br>Product ID: $prodID<br/><img src='userpics/$prodID.jpg' height='200' width='200'>
    </td>
   </tr>
  </table>

创造3怎么样?

     <table>
      <tr>
        <td>This is a column</td>
        <td>This is a column</td> 
        <td>This is a column</td>
      </tr>
     </table>
于 2013-08-02T10:00:39.817 回答
0

您需要在 PHP echo 中创建三列:

<table>
<tr>
<td>
<b>$prodname</b></td>
<td>Product ID: $prodID</td> 
<td><img src='userpics/$prodID.jpg' height='200' width='200'></td>
</table>
于 2013-08-02T10:04:47.170 回答