开发者

Problem with displaying rows of 3 in php

So basically I have a script that is suppose to display my code into rows of 3, and create a new row. However, it is all displayed in one column. Here's the code.

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;
}
}


move the $x out of the loop,otherwise you are reset it to one in every loop


each <td> will be a separate column. I would suggest you format it thus.

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>";
    }
}

also you need to use mysql_fetch_assoc() to get an associative array you can access like $row['key']


You may need to instantiate $x = 1 outside of your while loop - you're resetting it to 1 each time you're running it.

Using modulo might be good too:

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>"
}

You wouldn't need to worry about resetting $x to 1...

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜