2013-02-26 32 views
0

我有以下查詢 -的MySQL/PHP順序按哪裏

$query = mysql_query("SELECT * FROM test where admin = 'Yes' order by name = '$_GET[name]' DESC"); 

while($row = mysql_fetch_array($query)) 
{ 
    $id.=$row[id]; 
} 

echo $id; 

我想從$ _GET [名]的ID開始但是它返回一個列表用的起始名ID的列表排在下面?有任何想法嗎?

很多謝謝。

+2

請門大開,提供一個數據集,什麼導致你得到/你想要什麼。你的代碼也容易受到SQL注入的影響。您的API已被棄用。周圍窮人,糟糕的代碼。 – Kermit 2013-02-26 01:15:16

+2

哇!你需要認真檢查你的代碼的安全性。您不僅使用了不推薦使用的庫('mysql_ *'),而且您的代碼嚴重受到SQL注入的攻擊! – BenM 2013-02-26 01:15:50

回答

1
  1. 使用數組
  2. 您需要使用引號colums名

$query = mysql_query("SELECT * FROM test where admin = 'Yes' order by name = '$_GET[name]' DESC"); 

$ids = array(); 
while($row = mysql_fetch_array($query)) 
{ 
    $ids[] =$row['id']; 
} 

// Your IDs are now in an array which is easier to work with 
print_r($ids); 

FYI,you shouldn't use mysql_* functions in new code。他們不再維護and are officially deprecated。看到red box?請改爲了解prepared statements,並使用PDOMySQLi - this article將幫助您決定哪個。如果您選擇PDO,here is a good tutorial

你也SQL injections