簡體   English   中英

MySQL搜索中的雙重數據

[英]mysql double data in searching

誰能告訴我這是怎么了

$paramcari是需要搜索的值,它應該是a.status不是0而不是2的數據,但過濾器不起作用,輸出始終顯示所有狀態,無論是0,0還是2。 .. 我錯過了什么?

$sql="select a.*, b.*, d.*,  e.*, f.*, j.*, k.*, DATE_FORMAT(a.tgldaftar,'%d %b %Y %H:%i') as tgldaftar,
      DATE_FORMAT(a.tglkeluar,'%d %b %Y %H:%i') as tglkeluar , i.*
      from daftar a
      INNER JOIN  pasien  b ON a.noRM=b.noRM 
      INNER JOIN  ranjang d ON a.idranjang=d.idranjang 
      INNER JOIN  ruang e ON d.idruang=e.idruang 
      INNER JOIN  kelas  j ON e.idkelas=j.idkelas 
      INNER JOIN  instalasi  k ON e.idinstalasi=k.idinstalasi
      INNER JOIN (select idjenispasien , jenispasien  from jenispasien ) f ON a.idjenispasien=f.idjenispasien 
      INNER JOIN rujukan i ON a.idrujukan=i.idrujukan and a.status !=0 and a.status != 2";

if($paramcari != ""){
    $sql.=" and b.nama like '%$paramcari%'  ";
    $sql.=" or j.namakelas like '%$paramcari%'  ";
    $sql.=" or e.namaruang like '%$paramcari%'  ";
    $sql.=" or b.idRM like '%$paramcari%'  ";
    $sql.=" or i.namars like '%$paramcari%'  ";
    $sql.=" or a.nodaftar like '%$paramcari%'  ";
}   

$sql.="ORDER BY a.tgldaftar ASC limit  $start,15   ";   

您的搜索條件and a.status !=0 and a.status != 2附加到最后一個內部and a.status !=0 and a.status != 2條件。 它應該處於where條件。 將最后一個聯接更改為

INNER JOIN rujukan i ON a.idrujukan=i.idrujukan
where a.status !=0 and a.status != 2";

同時將大括號添加到搜索條件中,因為and優先級高於or

if($paramcari != ""){
    $sql.=" and (b.nama like '%$paramcari%'  ";
    ...
    $sql.=" or a.nodaftar like '%$paramcari%') ";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM