2015-11-11 33 views
0

我想選擇前5名成績,但每當增加order by votes desc limit 5這個代碼:選擇前5的結果:PHP/SQL

$req2 = mysql_query('select id, url, name, description, banner, votes 
        from topsite 
        order by votes desc 
        limit '.$first_message .','.$last_message); 
while($dnn2 = mysql_fetch_array($req2)) 

將無法​​正常工作。我該如何解決它?

+2

請不要使用'mysql_'數據庫擴展,它已被棄用(一去不復返在PHP7) 特別是如果你剛開始學習PHP,花你的精力學習'PDO'或'mysqli_'數據庫擴展, [和這裏是一些幫助來決定使用](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) – RiggsFolly

+0

什麼是$ first_message和$ last_message?爲了只獲得前5名,只需按降序排列,並限制爲5。 –

+0

*「它不會工作」*請更具體地說 – m02ph3u5

回答

0

您可以嘗試以下操作。另請注意,mysql_ *函數已棄用。改用PDO。

$req2 = mysql_query('select id, url, name, description, banner, votes 
        from topsite 
        order by votes desc 
        limit '.$your_limit .' OFFSET '.$your_offset); 
0
$req2 = mysql_query('select id, url, name, description, banner, votes 
        from topsite 
        order by votes desc 
        limit 5'); 

你不能通過串入限制你只有在極限

+0

,如果你傳遞參數,那麼參數也應該是整數類型而不是串接字符串。 –

+0

由於查詢是一個字符串,只要它是一個整數或一個包含整數的字符串,即「5」,它實際上並不關心「$ limit」變量的類型。「 – RiggsFolly

+0

這是錯誤的。 – m02ph3u5

2

使用整數如果你只想要TOP 5,那麼你只需要一個限制器這樣

而且如果您在查詢周圍使用雙引號,則可以自動擴展$variables,這樣可以更輕鬆地進行讀取和調試。

此外,如果你想看到你要尋找他們

$top_5_please = 5; 

$req2 = mysql_query("select id, url, name, description, banner, votes 
        from topsite 
        order by votes desc 
        limit $top_5_please"); 

// error check 
if (! $req2) { 
    echo mysql_error(); 
    exit; 
} 

while($dnn2 = mysql_fetch_array($req2)) 

最後要注意

請不要使用mysql_數據庫擴展,它是由mysql_擴展所產生的錯誤棄用(在PHP7中永遠消失) 特別是如果您剛剛學習PHP,請花費精力學習PDOmysqli_數據庫擴展, and here is some help to decide which to use