You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Datatables PHP MySQL 如何筛选显示rodzaj为ebook的特定条目

修复方法

你现在的代码核心问题是SQL语句写错了,而且没加过滤条件,按下面改就能正确读取所有rodzaj为ebook的条目。

第一步:替换错误的SQL查询语句

你原来写的SELECT DISTINCT rodzaj * FROM bazaplikow本身语法就不对,直接换成下面的查询语句,在数据库层就把非ebook的条目过滤掉,性能最好:

// 明确指定需要查询的列,通过WHERE条件筛选rodzaj等于ebook的行
$sql = "SELECT okladka, imie, nazwisko, tytul, rodzaj, info, download, data FROM bazaplikow WHERE rodzaj = 'ebook'";

不建议把所有类型的数据都查出来再在PHP循环或者DataTables前端过滤,平白多查很多没用的数据,拖慢加载速度。

修正后的PHP数据库连接段完整代码

<?php  
$servername = "xyz";
$username = "xyz";
$password = "xyz";
$database = "serwer144221_SwiatBook";

// 建立数据库连接
$connection = new mysqli($servername, $username, $password, $database);

// 连接失败直接抛错
if ($connection->connect_error) {
    die("数据库连接失败: " . $connection->connect_error);
}

// 查询所有ebook类型的记录
$sql = "SELECT okladka, imie, nazwisko, tytul, rodzaj, info, download, data FROM bazaplikow WHERE rodzaj = 'ebook'";
$result = $connection->query($sql);

if (!$result) {
    die("查询执行失败: " . $connection->error);
}
?>

额外提醒

  • 你原来SQL里写的DISTINCT完全没必要,除非你的表里存在整行完全重复的数据,加了反而会降低查询效率。
  • 如果后续要做ebook/audiobook切换展示的功能,不要直接拼接用户传入的类型参数到SQL里,要用PDO或者mysqli的预处理语句绑定参数,避免SQL注入漏洞。
  • 你剩下的HTML和DataTables初始化代码不需要改,查出来的数据全是ebook类型的,表格渲染出来自然就只有对应条目。

内容的提问来源于stack exchange,提问作者KoKoKoError404

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 15:31:15