PHP表单输入&mySQL空
我有一个表单可以将数据提交到PHP脚本。然后用脚本查询mySQL数据库以返回结果 表格: 问题是我搜索的一些字段在数据库中可能包含空值。例如,“phone”可以为空 因此,如果上面的表单中phone为空,并且表单已提交,我将不会看到phone为空的结果 我的查询正在查找…和类似电话的“%”,它排除了空值 有没有什么方法可以像“%whatever%”一样在手机上搜索,或者如果手机是空的,那么什么都没有 我也许可以把下面的东西拼凑起来,但我怀疑有更好的方法吗?我可能会在多个专栏中这样做PHP表单输入&mySQL空,php,mysql,forms,pdo,Php,Mysql,Forms,Pdo,我有一个表单可以将数据提交到PHP脚本。然后用脚本查询mySQL数据库以返回结果 表格: 问题是我搜索的一些字段在数据库中可能包含空值。例如,“phone”可以为空 因此,如果上面的表单中phone为空,并且表单已提交,我将不会看到phone为空的结果 我的查询正在查找…和类似电话的“%”,它排除了空值 有没有什么方法可以像“%whatever%”一样在手机上搜索,或者如果手机是空的,那么什么都没有 我也许可以把下面的东西拼凑起来,但我怀疑有更好的方法吗?我可能会在多个专栏中这样做 //
// if phone is entered, add to SQL query
if(isset($_POST['phone'])) {
$phone_qry = "AND phone LIKE :";
$phone = "%".$_POST['phone']."%";
}
// if phone not entered, don't add to query
else {
$phone_qry = "";
$phone = "";
}
$label = "%".$_POST['label']."%";
$id = "%".$_POST['id']."%";
$phone = "%".$_POST['phone']."%";
$province = "%".$_POST['province']."%";
$db->query("SELECT id AS 'Customer ID',
label AS 'Name',
province AS 'State',
phone AS 'Phone'
FROM customer
WHERE label LIKE :label
AND id LIKE :id"
. $phone_qry . $phone . "
AND province LIKE :province");
谢谢你,艾德其中COALESCELabel,比如:label工作得很好。正是我想要的。尝试:WHERE COALESCELabel,如:label等。如果为空,则将标签更改为空字符串。
$label = "%".$_POST['label']."%";
$id = "%".$_POST['id']."%";
$phone = "%".$_POST['phone']."%";
$province = "%".$_POST['province']."%";
$db->query("SELECT id AS 'Customer ID',
label AS 'Name',
province AS 'State',
phone AS 'Phone'
FROM customer
WHERE label LIKE :label
AND id LIKE :id
AND phone LIKE :phone
AND province LIKE :province");
// if phone is entered, add to SQL query
if(isset($_POST['phone'])) {
$phone_qry = "AND phone LIKE :";
$phone = "%".$_POST['phone']."%";
}
// if phone not entered, don't add to query
else {
$phone_qry = "";
$phone = "";
}
$label = "%".$_POST['label']."%";
$id = "%".$_POST['id']."%";
$phone = "%".$_POST['phone']."%";
$province = "%".$_POST['province']."%";
$db->query("SELECT id AS 'Customer ID',
label AS 'Name',
province AS 'State',
phone AS 'Phone'
FROM customer
WHERE label LIKE :label
AND id LIKE :id"
. $phone_qry . $phone . "
AND province LIKE :province");