【问题标题】:My while loop won't echo out data from my database我的 while 循环不会从我的数据库中回显数据
【发布时间】:2011-08-08 13:15:47
【问题描述】:

是的,所以我正在尝试执行一个新闻函数,并且我已经按照与往常一样的方式对其进行了编码,但是由于某些原因它无法工作,因为数据没有显示,尽管我的 mysql_num_rows 函数是检测数据库中的数据。

require('php/connect.php');

$query = mysql_query("SELECT * FROM news ORDER BY id DESC");

$numrows = mysql_num_rows($query);

    if($numrows=!0)
    {

        while ($row = mysql_fetch_assoc($query));
        {

        $body = $row['body'];
        $date = $row['date'];

        echo "Posted on: "strtotime($date)" |";
        echo "<hr width='20%' align='left'";
        echo "$body <br /> <hr width='100%' />";

        }

    }
    else    
        die("There are no news posts to show.")

如果有人能告诉我我的代码出了什么问题,我们将不胜感激。

【问题讨论】:

  • 你写不等式的方式很奇怪——=! 真的有效吗?另外,我通常使用"." 连接字符串,"Posted on: "strtotime($date)" |" 有效吗?
  • 是的,它可以工作,虽然 $numrows 不是问题,但它只是没有从该数据库接收信息,尽管它正在连接。 =!0 只是“如果它不等于 0”的另一种说法
  • 我猜你的意思是 $numrows!=0,而不是 =!。尽管第一个是错误的,但它总是评估为 1。在这种情况下这不是问题,它可能不是您想要的,并且在查看代码时会产生一些疑问。
  • =! 工作:它分配逻辑运算符应用的结果!到 0,即 1 到 $numrows。
  • 啊,我明白了,我很抱歉,但即使到目前为止所有错误报告,并且使用 $numrows!=0,问题仍然存在,它仍然返回值 1,即我的数据库中的行数,虽然它没有将数据解析为 $date 和 $body 变量,所以它们只是保持空白:S

标签: php mysql loops while-loop


【解决方案1】:

有一件事是肯定的,那就是您添加到查询中的 $numrows 东西。或者没有什么可以回显的。尝试查询而不检查它是否返回任何内容。

【讨论】:

  • 我做了,但我仍然对变量有同样的问题,就像他们没有从表格中提取信息一样。
【解决方案2】:

改变它

if($numrows=!0)

if($numrows != 0)

【讨论】:

  • @aiden: 看看@gaurav 的回答你也有连接问题。
【解决方案3】:

使用这个if($numrows) 而不是if($numrows=!0)

并使用

echo "Posted on: ".strtotime($date)." |";

而不是使用

echo "Posted on: "strtotime($date)" |";

广告还有一处错误

echo "<hr width='20%' align='left' />";   // closing tag for <hr>
echo "$body <br /> <hr width='100%' />";  

【讨论】:

    【解决方案4】:

    与您的问题无关,但if($numrows=!0) 永远是正确的。 使用if($numrows!=0)

    【讨论】:

      猜你喜欢
      • 2016-03-26
      • 1970-01-01
      • 2015-11-09
      • 1970-01-01
      • 2016-04-22
      • 2013-06-01
      • 2017-10-08
      • 2015-04-23
      • 1970-01-01
      相关资源
      最近更新 更多