PHP while循环变量不会递增

时间:2011-03-28 18:20:50

标签: php mysql html-table

我正在使用变量($ x)来跟踪我的循环运行的次数,并使用它来结束我的表上的行。但是,每次循环遍历它时,$ x都设置为0。

$x=0;

function getname($gid)
{
    $query2="SELECT UID FROM gallery WHERE GID = '$gid'";
    $result2=mysql_query($query2) or die(mysql_error());
    $row2=mysql_fetch_array($result2);
    global $uid;
    $uid=$row2['UID'];

    $query3="SELECT user FROM login WHERE id='$uid'";
    $result3=mysql_query($query3) or die(mysql_error());
    $row3=mysql_fetch_array($result3);
    global $creator;
    $creator=$row3['user'];
}

$query="SELECT * FROM photos ORDER BY DATE LIMIT $offset, 20 ";
$result=mysql_query($query) or die(mysql_error());
$row=mysql_fetch_array($result);
while($row=mysql_fetch_array($result))
{
    $gid=$row['gid'];
    $pid=$row['pid'];
    $name=$row['photo'];

    getname($gid);

    $photo="photos/".$row['pid'].".".$row['type'];

    echo "<table border=1>";

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

    $max_width = 100;
    $max_height = 100;
    list($width, $height) = getimagesize($photo);
    $w=$width;
    $h=$height;
    if($width > 100 or $height > 100)
    {
        $ratioh = $max_height/$height;
        $ratiow = $max_width/$width;
        $ratio = min($ratioh, $ratiow);
        // New dimensions
        $width = intval($ratio*$width);
        $height = intval($ratio*$height);
    }

    echo "<td><a href=view.php?pid=$pid> <img src=$photo width=$width height=$height /><big><font color=beige ><center>$name</center></font></big></a>";
    echo "<a href=user.php?uid=$uid><small><center>$creator</center></small></a></td>";
    echo $x;
    $x++;
    echo $x;
    if ($x=5)
    {
        echo "</tr>";
        $x=0;
    }
}
echo "</table>";

图片确实显示正常,调整大小,但每张照片都在不同的行上。我想要做的是在每一行上放置5个缩略图,然后转到下一行并再显示5个。但是,由于变量保持重置,我无法将它们全部放在右侧。任何帮助深表感谢。但是,由于变量保持重置,我不能

2 个答案:

答案 0 :(得分:5)

您需要使用相等运算符,而不是赋值运算符。

if ($x=0) // this sets x to 0, and the expression returns true 
          // if the assignment succeed (it always does)

if ($x==0) // this checks if x is zero. and returns true/false based on that.

答案 1 :(得分:2)

你使用错误的等号进行比较。 if ($x=0)会将$ x的值设置为零。您需要改为使用if ($x==0)