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