搜索的SQL查询不返回任何结果

时间:2015-10-17 10:02:37

标签: php mysql

我有一个sql表,大约有5000行。我编写了一个php代码,用于搜索主键并使用WHERE-IN子句显示结果。当我只搜索一个主键时,它会给我想要的结果,但如果我正在搜索多个主键,则它不会给出任何结果。附上我的代码。我是这个领域的初学者。任何人都可以帮助我...... ??

instanceof

2 个答案:

答案 0 :(得分:1)

正如您所说,$siteid值显示正确。 假设$siteid = '1,5,6'

现在查看您的查询:

$sql = "SELECT * FROM total_database WHERE  primary_key IN ('$siteid')";
                                                            ^ here

在您通过$siteid查询后会得到什么?

$sql = "SELECT * FROM total_database WHERE  primary_key IN ('1,5,6')";
                                                            ^ here

因此,您正在寻找值primary_key的{​​{1}}。你确定你有这样的主键吗?

您需要做的是用逗号分解'1,5,6'。然后将值内爆到新字符串,因此查询应如下所示:

$siteid

答案 1 :(得分:0)

我会改变

$siteid= $_GET['search1'];
$sql = "SELECT * FROM total_database WHERE  primary_key IN ('$siteid')";

这样的事情

$siteid= $_GET['search1'];
// if there is a , then re-format it instead of '1,2,3' to be '1','2','3'
if (strpos(",", $siteid) > -1){
    $t = explode(",", $siteid);
    $siteid = implode("','", $t);
}
    $sql = "SELECT * FROM total_database WHERE  primary_key IN ('$siteid')";