如何在列中进行多个搜索?

时间:2015-06-03 15:47:54

标签: php mysql

当我搜索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%'");
  }

2 个答案:

答案 0 :(得分:2)

为您指点:

  1. 尝试清理输入。

    $cno1 = mysqli_real_escape_string($link, $_POST["ssrch1"]);
    
  2. 由于您使用的是多列,因此您的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}%'");

如果你只是在本地机器上学习,这不会造成任何问题,但在生产中,总是清理用户输入的数据,永远不要信任用户数据。