2013-06-19 107 views
-1

我的數據庫表名「廣場」的結構是這樣的:獲取從MySQL數據庫獨特的價值

ID  Name URL   Role 
1  ab  www.url.com xy 
2  cd  www.url.com xy 
3  ef  www.url.com xy 
4  ab  www.url.com xy 
5  cd  www.url.com xy 
6  gh  www.url.com xy 

現在,我想從該表中獲得獨特的價值。例如。唯一的名字是:ab,cd,ef,gh,id,網址和角色。

所以我的sql查詢是這個樣子:

$getpara = $_GET['role']; 
$getsquare = mysql_query("SELECT ID, DISTINCT (Name), URL, Role FROM Square WHERE Role = 
'$getpara'"); 

,但得到錯誤信息,可能是我的SQL查詢是錯誤的。你可以嗨幫我嗎?

+0

您正在對一個值做DISTINCT,您需要進行分組。 – sashkello

回答

4

GROUP BY代替DISTINCT嘗試像

$getsquare = mysql_query("SELECT ID, Name, URL, Role 
          FROM Square 
          WHERE Role = '$getpara' 
          GROUP BY Name"); 

而且也儘量*避免使用mysql_函數由於他們棄用。相反他們使用mysqli_ *函數或PDO語句

+0

我正在嘗試你的代碼.. –

+0

不要自己拼湊SQL字符串,你打開SQL注入。使用預先準備的語句,如http://php.net/manual/de/pdo.prepared-statements.php所示。 –

+0

我在我的ans – Gautam3164

0

使用GROUP BY, DISTINCT在所有行上操作,

$getsquare = mysql_query("SELECT ID, Name, URL, Role FROM Square WHERE Role = '$getpara' GROUP BY Name"); 
0
$getpara = $_GET['role']; 
$getsquare = mysql_query("SELECT DISTINCT Name, ID, URL, Role FROM Square WHERE Role = 
'$getpara'"); 

嘗試使用沒有'()'和DISTINCT的第一個。

0

只需刪除DISTINCT並且您的查詢將正常工作 - 由於您擁有唯一的名稱,因此不需要使用0123.CLAUSE。