当我搜索Juan Pedro Cruz
时,我有以下代码。但是如果我只搜索juan
,它就会出现。
<?php
if(isset($_POST["btnssrch1"])){
$cno1 = $_POST["ssrch1"];
$p = mysqli_query($link,"select * from patient
where PatientId like '%$cno1%'
or FirstName like '%$cno1%'
or MiddleName like '%$cno1%'
or LastName like '%$cno1%'");
}
答案 0 :(得分:2)
为您指点:
尝试清理输入。
$cno1 = mysqli_real_escape_string($link, $_POST["ssrch1"]);
由于您使用的是多列,因此您的SQL应该是:
WHERE CONCAT(`FirstName`, ' ', `MiddleName`, ' ', `LastName`) LIKE '%{$cno1}%'
答案 1 :(得分:0)
将您的查询更改为如下所示,其中集中全名,然后将其与之比较,假设PatientId
为数字,
$p = mysqli_query($link,"select * from patient where CONCAT(FirstName,' ',MiddleName,' ',LastName) like '%{$cno1}%'");
如果你只是在本地机器上学习,这不会造成任何问题,但在生产中,总是清理用户输入的数据,永远不要信任用户数据。