您好我在输入表单上有3个字段,通过POST方法设置为外部php
$id=$_POST['id'];
$nombre=$_POST['nombre'];
$cedula=$_POST['cedula'];
我想根据哪个字段中包含数据或者用户是否在所有3个字段或仅2个字段中放入数据来搜索同一个表中不是NULL字段的输入字段,从而创建搜索选项结果。
我的SQL查询类似于$sql = "SELECT * FROM users WHERE userID = $id AND nombre = $nombre AND cedula = $cedula) ";
答案 0 :(得分:0)
尝试添加引号:
$sql = "SELECT * FROM users WHERE userID = ".$id." AND nombre = ".$nombre." AND pass = '".$pass."' ";
答案 1 :(得分:0)
首先,应更新您的SQL语句,使其包含围绕字符串值的'
(逗号)。
所以,将其修改为:
$sql = "SELECT * FROM users WHERE userID = '$id' AND nombre = '$nombre' AND pass = '$pass'";
// ----------------------------------------^---^--------------^-------^------------^-----^
第二件事是你应该只在它有一个值的情况下搜索一个字段,否则没用。
因此,您修改的PHP代码应为:
$sql = "SELECT * FROM users WHERE 1 ";
if (!empty($id)) {
$sql .= " AND userID = '$id' ";
}
if (!empty($nombre)) {
$sql .= " AND nombre= '$nombre' ";
}
if (!empty($pass)) {
$sql .= " AND pass= '$pass' ";
}
只有在表单中填写了数据时,才会搜索数据库。
答案 2 :(得分:0)
是的,您需要先检查一下,否则会忽略空字段。
此外,如果$variable
类型为'
或VARCHAR
,则需要将CHAR
置于单引号{{1}}内。