首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP:循环遍历结果集

问PHP:循环遍历结果集
EN

Stack Overflow用户
提问于 2016-05-27 23:22:45
回答 2查看 52关注 0票数 1

我有一个很大的问题,循环的结果,这两个查询携手合作,以检查一家餐厅是否今天开放。我的问题是,我有餐馆,身份证1-5(更多在未来)。但是循环似乎只得到了餐馆的id 5。我在这里读了很多帖子,似乎我做了正确的事情。但我似乎无法获得另一家餐厅的身份证。

我现在被堵住了,新手对任何建议和建议都很开放。

代码语言:javascript
复制
$sel = "SELECT Rest_Details.Resturant_ID,Delivery_Pcode.Pcode,Delivery_Pcode.Restaurant_ID 
FROM Rest_Details INNER JOIN Delivery_Pcode
ON Delivery_Pcode.Restaurant_ID=Rest_Details.Resturant_ID
WHERE Delivery_Pcode.Pcode LIKE'$searchP'";
$res = $dbc->query($sel);

if (!$res) {
    echo "invalid query '" . mysqli_error($dbc) . "\n";
}
$i=1;
while ($row_res = $res->fetch_array()) {
    $rest_ = $row_res['Resturant_ID'];
    $i++;
}

date_default_timezone_set("Europe/London");

$daynum = jddayofweek(unixtojd());

$query = "SELECT *
FROM Opening_hrs WHERE
Restaurant_ID = $rest_
AND Day_of_week = $daynum";

$run_qu = $dbc->query($query);

if ($run_qu->num_rows > 0) {
    while ($row_qu = $run_qu->fetch_assoc()) {
       $message = "open" . $row_qu["Open_time"] . "</br>";
    }
} else {
    $message = $message . "close" . $row_qu["Closing_time"] . "</br>";
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-27 23:39:21

您可以在循环中输出您想要的任何内容,也可以构建一个输出字符串,因为$rest_的值始终是循环中的最后一个值,我认为这不是您想要的.同样,您也在对$message进行同样的操作。我敢打赌这就是你想要做的:

代码语言:javascript
复制
        <?php 
        date_default_timezone_set("Europe/London");

        $sel = "SELECT Rest_Details.Resturant_ID,Delivery_Pcode.Pcode,Delivery_Pcode.Restaurant_ID 
                 FROM Rest_Details INNER JOIN Delivery_Pcode
                 ON Delivery_Pcode.Restaurant_ID=Rest_Details.Resturant_ID
                 WHERE Delivery_Pcode.Pcode LIKE'$searchP'";
        $res = $dbc->query($sel);

        if (!$res) {
            echo "invalid query '" . mysqli_error($dbc) . "\n";
        }

        $i=1;

        while ($row_res = $res->fetch_array()) {
            $rest_ = $row_res['Resturant_ID'];
            $i++;       // <== YOU DON'T NEED THIS VARIABLE....

            // GET THE DATES WITHIN THE LOOP...     
            $daynum = jddayofweek(unixtojd());      
            $query  = "SELECT *
                 FROM Opening_hrs WHERE
                 Restaurant_ID = $rest_
                 AND Day_of_week = $daynum";

            $run_qu = $dbc->query($query);

            if ($run_qu->num_rows > 0) {
                while ($row_qu = $run_qu->fetch_assoc()) {
                    $message = "open" . $row_qu["Open_time"] . "</br>";
                }
            } else {
                $message = $message . "close" . $row_qu["Closing_time"] . "</br>";
            }       

        }
票数 1
EN

Stack Overflow用户

发布于 2016-05-27 23:35:07

我想这就是你想要做的。

代码语言:javascript
复制
// $searchP should be checked to prevent SQL injection. 
$sel = "SELECT Rest_Details.Resturant_ID, Delivery_Pcode.Pcode,
        Delivery_Pcode.Restaurant_ID 
        FROM Rest_Details INNER JOIN Delivery_Pcode 
            ON Delivery_Pcode.Restaurant_ID = Rest_Details.Resturant_IDW
        WHERE Delivery_Pcode.Pcode LIKE '$searchP'";
$res = $dbc->query($sel);

if (!$res) {
    echo "invalid query '" . mysqli_error($dbc) . "\n";
}

// set these once as they don't change
date_default_timezone_set("Europe/London");
$daynum = jddayofweek(unixtojd());

// $i=1; - not required, never used
// loop over the original results
while ($row_res = $res->fetch_array()) {
    $rest_ = $row_res['Resturant_ID'];
    //$i++; not used

    // check for a match 
    $query = "SELECT * FROM Opening_hrs 
             WHERE Restaurant_ID = $rest_
             AND Day_of_week = $daynum";

    $run_qu = $dbc->query($query);

    if ($run_qu->num_rows > 0) {
        // at least one match
        while ($row_qu = $run_qu->fetch_assoc()) {
            $message = "open" . $row_qu["Open_time"] . "<br />";
            $message .= "close" . $row_qu["Closing_time"] . "<br />";
        }
    } else {
        // no matches
        $message = "No results for <i>$daynum</i>.";
    }
}

应该可以在一个查询中获得详细信息,但我需要查看您的SQL表(您也没有要求:])。

而且,它是<br>或<br />,而不是</br>。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37493614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档