PHP 不显示 MySQL 查询结果

标签 php mysql sql

我正在使用 MySQL 数据库构建网页。我在这个项目中创建了很多带有 MySQL 查询的 PHP 脚本,它们都运行良好。但是当我尝试在 PHP 上运行这个查询时

$qry = mysqli_query($baglanti,"SELECT tedavi_adi
        FROM tedaviler
        INNER JOIN hastane_tedaviler
        ON tedaviler.tedavi_id=hastane_tedaviler.tedavi_id
        WHERE hastane_tedaviler.hastane_id=2
        ORDER BY tedaviler.tedavi_adi ASC") or die("ERROR");

$treatments = array();
while ($row = mysqli_fetch_assoc($qry))
{
    $treatments[] = $row;
}
echo json_encode($treatments);

它没有给出任何错误,但它返回空。

当我将 json_encode($treatments) 代码移动到 while 循环时,它会给出前 2 个项目,例如 [x][x,y] 在一个 6 元素数组中,并给出 10 元素数组中的前 6 个元素。

查询在 MySQL 服务器上运行良好,但在 PHP 上运行不佳。我想不通。 Tables

已解决:问题是当我将土耳其字母字符从服务器传来时,我将它们更改为英文字符,但问题解决了。

最佳答案

我想 json_encode 函数无法正确解析数组。

尝试输出所有字段(*),看看json_encode是否正常。

$qry = mysqli_query($baglanti,"SELECT *
        FROM tedaviler
        INNER JOIN hastane_tedaviler
        ON tedaviler.tedavi_id=hastane_tedaviler.tedavi_id
        WHERE hastane_tedaviler.hastane_id=2
        ORDER BY tedaviler.tedavi_adi ASC") or die("ERROR");

$treatments = array();
while ($row = mysqli_fetch_assoc($qry))
{
    $treatments[] = $row;
}
echo json_encode($treatments);

如果它确实工作正常,那么问题是您试图只输出一个不正确的字段。

关于PHP 不显示 MySQL 查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32560172/

相关文章:

php - 将带有日期和时间的 php 字符串转换为 sql 时间戳

php - 插入时将数据从一个表传输到另一个表

php - "Self Healing"的 OO 模式和/或结构化方法?

mysql - 计算没有。两个给定日期之间的工作时间(不包括周末)

php - 通过链接在网站上添加YouTube视频

PHP PDO 准备语句——MySQL LIKE 查询

mysql - 使用 Haxe 将 SDateTime 存储在 SQL 数据库中

sql - oracle sql中名字(varchar2数据类型)的排序问题

mysql - 通过多个子查询连接优化查询

mysql - 总结每个用户的最新记录