2013-05-14 116 views
-1

結果我有這樣的代碼:顯示從查詢數據庫的PHP

$genre = 'jazz'; 
$what_genre = mysql_real_escape_string($genre); 
$query = mysql_query("SELECT song.id, song.title, genre.genre FROM song INNER JOIN genre ON song.id_genre=genre.id_genre WHERE genre.genre = '" .$what_genre. "' ORDER BY id"); 

if(mysql_num_rows($query) > 0) 
{ 
    while($result = mysql_fetch_array($query)) 
    { 
     echo $result['id']; 
     echo $result['title']; 
     echo $result['genre']; 
    } 
} 

我要顯示的結果,但它失敗了。該系統給我的錯誤報告:

一個PHP錯誤遇到

嚴重性:警告

消息:mysql_num_rows()預計參數1是資源,布爾給

我該怎麼辦?謝謝你的幫助。

+0

do'echo「SELECT song.id,song.title,genre.genre FROM song INNER JOIN genre ON song.id_genre = genre.id_genre WHERE genre.genre ='」。$ topiknya。 「'ORDER BY ID」'告訴我你得到了什麼。 – 2013-05-14 08:31:10

+2

[**在新的代碼,請不要使用'mysql_ *'功能**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果選擇PDO,[這裏是一個很好的教程(http://www.brightmeup.info/article.php?a_id=2)。 – 2013-05-14 08:31:37

+0

請使用'mysql_error()'顯示的查詢失敗http://php.net/manual/en/function.mysql-error.php – GBD 2013-05-14 08:36:35

回答

2

從ID更改您的查詢中查詢到song.id這樣

"SELECT song.id, song.title, genre.genre FROM song INNER JOIN genre ON song.id_genre=genre.id_genre WHERE genre.genre = '" .$topiknya. "' ORDER BY song.id"; 
+0

這是行不通的。 :( – bob 2013-05-14 08:34:21

+0

你是什麼類型的表ID名稱是ID或id_genre? – 2013-05-14 08:41:00

+0

它解決了。顯然我錯了對列名的。它應該是'song.song_title',不'song.title'。我沒有看到它仔細。:) – bob 2013-05-14 14:30:50

0

其中ORDER BY id使用song.id代替id