2011-04-19 112 views
1

正确的,所以我试图执行一个新闻功能,我已经编码它一样的方式,我总是这样做,但一些某些原因,它不会工作因为数据没有显示,尽管我的mysql_num_rows函数正在检测数据库中的数据。我的while循环不会回显数据从我的数据库

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.") 

如果有人能告诉我在我的代码中出了什么问题,那将非常感激。

+3

你有一种奇怪的写作不平等的方式 - 是不是'=!'实际上工作?另外,我通常使用'“。”'连接字符串,''发布于:“strtotime($ date)”|“'valid? – RichardTheKiwi 2011-04-19 10:09:44

+0

是的,它不是$ numrows,虽然它是一个问题,但它只是没有从数据库接收信息,虽然它正在连接。而= = 0只是说“如果它不等于0”的不同方式 – 2011-04-19 10:13:19

+0

我想你的意思是$ numrows!= 0,不= =。即使第一个是错误,它总是评估为1.在这种情况下哪个不是问题,它可能不是你想要的,并且在查看代码时会有些奇怪。 – mdma 2011-04-19 10:13:42

回答

4

使用这种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%' />"; 
0

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

+0

我做过了,但我仍然遇到与变量相同的问题,就像他们没有从表格中提取信息。 – 2011-04-19 10:11:24

1

更改它

if($numrows=!0) 

if($numrows != 0) 
+1

完全没有影响。 – 2011-04-19 10:10:12

+0

@aiden:看@gaurav的答案,你也有连接问题。 – 2011-04-19 10:14:37

1

不是关于你的问题的一个失误较多,但if($numrows=!0)会总是如此。 使用if($numrows!=0)