-1

さて、私はこのコードを持っています:

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 ステートメントを実行していないようです。

なぜこれが起こっているのかがわかれば、それは大歓迎です。

4

2 に答える 2

0

「@」を削除すると、おそらくエラーが発生することがわかります。PHP では、グローバルに "@" を使用するのは間違いです。あなたはそれを決して使用しないかもしれません。

于 2012-06-14T09:32:12.953 に答える