繁体   English   中英

我怎样才能修复这个过滤器功能直到它工作?

[英]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 ?
    )

需要注意的两个重要事项:

  1. andor一起使用时,如果没有用括号明确运算顺序,可能会得到意想不到的结果
  2. 永远不要使用串联将变量放入查询中。 始终使用准备好的语句。 (你看到的? )。 有关如何使用PDO 的参考,请参阅此网站

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM