Mysql结果是一个资源但不显示

时间:2012-06-14 09:28:42

标签: php mysql

好的,我有这个代码:

if (isset($_GET['book'])) {

$query= "SELECT  book_id, title, authors.`author` , publishers.`publisher` , formats.`format` , genres.`genre` , usersdb.users.username, pages, isbn, description, DATE_FORMAT( books.`release_date` ,  '%M, %d, %Y' ) AS  `release_date` 
    FROM books
    INNER JOIN  `authors` ON (  `authors`.`author_id` =  `books`.`author_id` ) 
    INNER JOIN  `publishers` ON (  `publishers`.`publisher_id` =  `books`.`publisher_id` ) 
    INNER JOIN  `formats` ON (  `formats`.`format_id` =  `books`.`format_id` ) 
    INNER JOIN  `genres` ON (  `genres`.`genre_id` =  `books`.`genre_id` ) 
    INNER JOIN usersdb.users ON ( usersdb.users.user_id = bookdb.books.user_id ) 
    WHERE books.book_id= ".$_GET['book']."";
    $query=@mysql_query ($query, $dbc1);

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

echo '<h1>'.$row['title'].'</h1>
  <p>'.$row['author'].'</p>
  <p>'.$row['publisher'].'</p>
  <p>'.$row['format'].'</p>
  <p>'.$row['genre'].'</p>
  <p>'.$row['pages'].'</p>
  <p>'.$row['isbn'].'</p>
  <p>'.$row['release_date'].'</p>
  <p>'.$row['description'].'</p>
  <p>'.$row['username'].'</p>';
}
}
}

对于某些条目,它可以正常工作,并且所有信息都正确显示并且很好,但是对于新条目,由于某种原因信息根本不显示。

mysql查询正确运行,你可以看到我已经完成了一个var_dump()并返回resource(11, mysql result)所以资源肯定存在,它似乎没有通过while语句运行。< / p>

如果你能看出为什么会发生这种情况会非常感激。

2 个答案:

答案 0 :(得分:0)

如果你只删除“@”,你会发现可能有错误。在PHP的全球范围内,使用“@”是一个错误。你可能永远不会使用它。

答案 1 :(得分:-1)

如果正在提取任何记录,请尝试echo mysql_num_rows($query)

如果它返回一些值, 尝试删除@,可能是错误的原因