PHP没有显示MySQL查询结果

时间:2015-09-14 08:19:43

标签: 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循环时,它会在6个元素数组中提供前{2}个项目,如[x][x,y],并提供前6个元素在10个元素阵列中。

查询在MySQL服务器上工作正常但不适用于PHP。我无法弄清楚。 Tables

解决:问题是来自服务器的土耳其字母字符,当我将它们更改为英文字符时,它已经起作用。

1 个答案:

答案 0 :(得分:0)

我认为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);

如果它能正常工作,那么问题是你只想输出一个不正确的字段。