2016-03-06 48 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 + '%'";