如何在我的ajax代码中正确选择数据?

ni65a41a  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(234)

我有一张table place 在mysql中,我想得到表中的photo字段 trip_half_day 显示我的json脚本。
table place 看起来像这样。
以及 trip_half_day 看起来像这样。
我尝试了以下代码:

<?php
    include("connect.php"); 

    $strSQL = "SELECT trip_id, b.photo AS trip1, c.photo AS trip2, d.photo AS trip3, e.photo AS trip4 , a.type
                FROM  trip_half_day a, place b, place c ,place d, place e
                WHERE a.trip1 = b.place_id 
                AND a.trip2 = c.place_id 
                AND a.trip3 = d.place_id 
                AND a.trip4 = e.place_id
    "; 

    $objQuery = mysqli_query($connection,$strSQL);
    $intNumField = mysqli_num_fields($objQuery);
    $resultArray = array();
    while($obResult = mysqli_fetch_array($objQuery))
    {
        $arrCol = array();
        for($i=0;$i<$intNumField;$i++)
        {
            $arrCol[mysqli_fetch_field_direct($objQuery,$i)->name] = $obResult[$i];
        }
        array_push($resultArray,$arrCol);
    }
    mysqli_close($connection);
    echo json_encode($resultArray);

得到这个:

但是,我想要的结果是:

我该怎么修?

g52tjvyc

g52tjvyc1#

在我看来,缺少的结果(id 5、6、7、8)不符合您要求的4个要求。您需要4个“null”或“empty”值不匹配的条件。
尝试:

WHERE ((trip1 = b.place_id) or (isnull(trip1)))
        AND   ((trip2 = c.place_id) or (isnull(trip2)))
        AND   ((trip3 = d.place_id) or (isnull(trip3)))
        AND   ((trip4 = e.place_id) or (isnull(trip4)))

…如果它们是空的。但是看到你的table我想也许 trip1,trip2... 是否以文本形式存储?请检查一下。
同时请检查连接语法。这将使你的代码更好,更干净,更小,更快。

相关问题