在php中显示3行的问题

时间:2011-09-10 04:51:26

标签: php mysql

所以基本上我有一个脚本,假设我的代码显示为3行,并创建一个新行。但是,它全部显示在一列中。这是代码。

while($mysql2 = mysql_fetch_array($sql2)) {
$prodlogo = $mysql2['logo'];
$prodid = $mysql2['id'];
$prodname = $mysql2['name'];

$x = 1;

if($x==1) {
    echo "<tr>";
}

echo "<td><img src=images/productpics/$prodlogo></br><a href=viewproduct.php?pid=$prodid>$prodname</a></td>";


$x++; 

if($x==3) {
    echo "</tr>";
    $x = 1;
}
}

3 个答案:

答案 0 :(得分:2)

将$ x移出循环,否则在每个循环中将其重置为1

答案 1 :(得分:1)

每个&lt; td&gt;将是一个单独的专栏。我建议你格式化它。

while($mysql2 = mysql_fetch_assoc($sql2)) {
    foreach($mysql2 as $row) {
        echo "<tr>";
        echo "<td>".$row['logo']."</td><td>$".row['id']."</td><td>".$row['name']."</td>";
        echo "</tr>";
    }
}

你还需要使用mysql_fetch_assoc()来获取你可以访问的关联数组,如$ row ['key']

答案 2 :(得分:0)

您可能需要在while循环之外实例化$x = 1 - 每次运行时都将其重置为1.

使用modulo可能也不错:

if (($x % 3) == 0) {
   echo "<tr>"
}

echo "<td><img src=images/productpics/$prodlogo></br><a href=viewproduct.php?pid=$prodid>$prodname</a></td>";

if (($x % 3) == 0) {
   echo "</tr>"
}

您无需担心将$ x重置为1 ...