PHP:循环遍历结果集

标签 php mysql

我在遍历结果时遇到了一个大问题,这两个查询协同工作以检查餐厅今天是否营业。我的问题是我有餐厅,编号为 1-5(以后会更多)。但是循环似乎只能获得餐厅 ID 5。我在这里阅读了很多帖子,看来我做对了。但我似乎无法循环获取其他餐厅 ID。

我现在被屏蔽了,对任何建议或建议都非常开放的新手。

$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>";
}

最佳答案

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

        <?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>";
            }       

        }

关于PHP:循环遍历结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37493614/

相关文章:

php - PHP解析/语法错误;以及如何解决它们

javascript - JavaScript 中的 Smarty 变量

php - Laravel 多对多同步与附加列

php - 在 AngularJS 中捕获 PDO 异常

php - 如何在php的编辑表单中填充下拉框

PHP根据键从多维数组中删除重复项

php - "self-referencing"表和数组

mysql - 未知的慢 SQL 查询

PHP 的 mysql_real_escape_string() 的 Java 等价物

java - NetBeans 和 MySQL 的问题(授予访问权限)