我想通过添加“OR”语句来进行查询。使用我在下面的内容不会显示所有条目。我做错了什么?
//$q = search variable;
$sql = "SELECT name, id_code from codes WHERE (id_code = '$q') OR (name='$q')";
答案 0 :(得分:3)
$sql = "SELECT name, id_code from codes WHERE (id_code = '$q') OR (name='$q')";
$sql = "SELECT name, id_code from codes WHERE (id_code = '$q' OR name='$q')";
$sql = "SELECT name, id_code from codes WHERE id_code = '$q' OR name='$q'";
所有这些都会产生相同的结果。
答案 1 :(得分:1)
您是否尝试过SELECT name, id_code from codes WHERE id_code = '$q' OR name='$q'
(即没有括号)?
答案 2 :(得分:1)
此代码是正确的。它不起作用的原因是因为在大海捞针中没有找到针头。
答案 3 :(得分:0)
这可能是因为id_code
列是一个数字列,或列的值是零填充或变量未传递给查询。
通过回显查询检查变量以查看它们是否被传递,并查看字段的数据类型。
如果某个字段是数字字段,则可以在不使用引号的情况下对其进行分配或比较。
此外,如果您要搜索name
列的部分内容,则必须将=
运算符更改为like
运算符:
$sql = "SELECT name, id_code from codes WHERE (id_code = '$q') OR (name like '%$q%')";
%
表示任何内容(零个或多个字符),因此查询将查找以任何内容开头的任何名称,然后搜索therm,然后以任何结尾。