[英]how can i fix this filter function till it works?
soo .. 我想在我的网站上制作过滤器功能,他使用 3 个表 tb_data、tb_peserta 和 paket 在 yhis 页面上打印出表格组件
$keyword = $_POST['keyword'];
$query = "
SELECT
tb_peserta.id_peserta,
tb_data.nama,
tb_paket.nama_paket,
ket,
waktu_awal,
waktu_akhir
FROM
tb_peserta,tb_data,tb_paket
WHERE
tb_peserta.id_number=tb_data.id_number
AND tb_peserta.id_paket=tb_paket.id_paket
AND status_data_peserta='aktif'
AND nama LIKE '%$keyword%'
OR nama_paket LIKE '%$keyword%'
OR ket LIKE '%$keyword'
";
那是我所做的过滤器查询..这不显示数据但它显示所有数据,它不起作用..所以需要你的帮助
您很可能在此处创建了笛卡尔连接。 我建议使用 ansi 样式的 sql,因为它更清晰,并且不容易受到意外连接结果的影响:
SELECT
tb_peserta.id_peserta,tb_data.nama,tb_paket.nama_paket,ket,waktu_awal,waktu_akhir
FROM
tb_peserta
INNER JOIN tb_data on tb_peserta.id_number=tb_data.id_number
INNER JOIN tb_paket on tb_peserta.id_paket = tb_paket.id_paket
WHERE
status_data_peserta='aktif'
— note parentheses and placeholders!
AND (
nama LIKE ?
OR
nama_paket LIKE ?
OR
ket LIKE ?
)
需要注意的两个重要事项:
and
和or
一起使用时,如果没有用括号明确运算顺序,可能会得到意想不到的结果?
)。 有关如何使用PDO 的参考,请参阅此网站
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.