[英]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.