while循环中的mysql_fetch_object和row-> [属性名称]

时间:2011-03-07 00:18:58

标签: php mysql while-loop

我是网络编程的新手,我正在研究Vikram Vaswani的如何使用PHP和MySQL做一切。接近结束时,他展示了如何制作一个显示新闻项目的网络程序,并允许用户编辑和添加不同的新闻项目。代码似乎不起作用,我已经调整它以使其工作,但我仍然感到困惑。特别是,我有以下代码(这个网站没有很好地处理休息)

// if records present
if (mysql_num_rows($result) > 0)
{
    // iterate through resultset
    // print article titles
    while($row == mysql_fetch_object($result));
    {
    ?>
        <li><a href="story.php?Ticker=<?php echo $row->Ticker;?>"><?php echo $row->StockName;?></a></li>
        <?php 
        $row = mysql_fetch_object($result);  
        echo $row->Ticker;
        echo $row->StockName;

<br>

现在,这本书有while ($row = mysql_fetch_object($result)); - 但这没有做任何事情。所以我把它改成了一个相等的比较运算符。我在想循环中底部的$row = mysql_fetch_object($result),它应该移动到表的下一行,因为这是http://us2.php.net/manual/en/function.mysql-fetch-object.php每个我自己的测试的正常行为。我可以通过for循环或其他方式做到这一点,但我想弄清楚为什么它不起作用我在这里的预期。

2 个答案:

答案 0 :(得分:0)

绝对应该是:

while($row = mysql_fetch_object($result))
{

}

看起来你在while行的末尾有一个分号,然后就会结束while循环。相反,你应该用括号打开一段代码。如果没有返回结果,那么它将为false并退出while循环。

答案 1 :(得分:0)

在while循环中,mysql_fetch_object()返回$ result中的下一行。如果您使用==运算符进行测试则不可能是真的。