2016-03-06 52 views
-2

目前我使用查詢MySQL的多選結果

$query = "SELECT `username` FROM `database` WHERE `result` LIKE '%" . $arguments . "%'"; 
$connect = db_connect(); 
$query = "SELECT `result` FROM `database` WHERE `username` = '" . $arguments . "';"; 
$get_users = db_query($query, $connect); 
mysql_close($connect); 

$data = $get_users[0]->result; 
if ($get_users[0] == null) { 
    die("No Results Found!"); 
} else { 
    die($data); 
} 

這樣做的問題是,這個查詢會看不起我的數據庫與IP我提供1級的用戶,因爲它看起來對我的數據庫和它發現它的第一個結果將停止查詢,只是迴應那個單一的用戶名,我希望它返回所有連接到該IP的用戶名。

+0

可能是您當前過濾器只有一個記錄。 –

+0

你傳遞了​​多個參數,如$ arg1,$ arg2 ....多個變量...等 – zee

+0

我完全不知道你在問什麼。我不是MySQL嚮導,但我很確定它不會「吐」。如果你[包含更多的代碼](http://stackoverflow.com/help/mcve)並且闡明預期的輸出是什麼,以及你得到的輸出是什麼,這將會有所幫助。 – Carpetsmoker

回答

1

更改您的WHERE:

WHERE result LIKE %val1% OR result LIKE %val2% 

適用於PHP的另一種方法:

$arguments= array('val1','val2'); 

//Escape arguments, trim, whatever before doing this 
//Better use PDO or a similar, with prepared statements. 
//query 
$qr = 'SELECT ... WHERE result IN ('.implode(',',$arguments).')'; 
0

您可以把列結果和變量$參數:

$query = "SELECT username FROM database WHERE '".$arguments."' LIKE '%' + result + '%'";