php - PHP for MySQL 查询中 while() 循环内的随机跳转

标签 php mysql

我正在为大学做一个示例项目,但遇到了一个无法解决的问题。 总的来说,该项目是在 Apache 上使用 PHP 和 MySQL 创建一个自动披萨订单系统。该系统通过以下步骤进行工作: - 顾客下订单 -> 面包师收到订单, yield -> 司机在特定状态收到订单, yield - 客户可以通过 session 随时查看订单

现在我在最后一步挂断了:驱动程序可以看到一个页面,其中有一个表,其中包含面包师使用和传递的信息(所有更改都在数据库端)。司机只能看到整个包裹(当所有披萨都标记为某种状态时,也保存在数据库中)。

为此,我有以下 SQL 语句

SELECT PizzaID, BestellungID, Adresse, PizzaName, Preis, Status FROM angebot, bestelltepizza, bestellung where bestellung.bestellungid = bestelltepizza.fbestellungid and angebot.PizzaName = bestelltepizza.fPizzaName and (select min(status) from bestelltepizza where bestellung.bestellungid = fbestellungid) >2 ORDER BY Status, BestellungID

现在,当我使用 var_dump() 获取 mysqli_num_rows() 输出时,我没有收到任何错误,并且输出如下 int 26 。与数据库行相比,这是正确的数字。我获取sql:

while($row = mysqli_fetch_array($this->result)) {
    var_dump(mysqli_num_rows($this->result));
    var_dump($row);
    ...
}

while()循环中包含另一个查询

$this->query = "SELECT fPizzaName FROM bestelltepizza WHERE fBestellungID = '$BestellID'";
var_dump($this->query);
$tmpResult = $this->_database->query($this->query);
$count = mysqli_num_rows($tmpResult);

现在问题来了,while()循环遗漏了一个随机的$BestellID,它可以包含x行数据。但是当我计算 var_dump() 的输出时,一切都是正确的。但是,var_dump($this->query); 也没有显示特定跳转的查询语句。

有什么想法吗?下面是 Pastebin 的完整链接。

为了不充分扩展这个问题,我将整个代码上传到pastebin:http://pastebin.com/u888CPLw

Offtopic:感谢任何帮助,谢谢。如果我未能解决我的确切问题,或者如果我的问题出现任何问题,请发表评论,我会澄清。谢谢。

最佳答案

                    while($row = mysqli_fetch_array($this->result)) { 
                        $count = mysqli_num_rows($tmpResult);

                        for($i = 0; $i < $count; $i++) {

                                $tmpVar = mysqli_fetch_array($this->result);

我截取了代码来显示问题

$count 基于 $tmpResult 然后你在 $this->result 上执行获取数组你应该在$tmpResult

正如 Marc B 所说,它是一个简单的查询,可以对查询进行内连接/左连接。使用连接会更好。

关于php - PHP for MySQL 查询中 while() 循环内的随机跳转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28988750/

相关文章:

php - 二维数组的使用

php - Yii 生成和打印报告

php - 确定 PHP 是否存在 mySQL 错误

php - 我的 MYSQL 查询的 where 部分出错

mysql - Python 使用 MySQL 连接器卡在 fetchall 上

php - 内爆警告

php - 在两台不同的服务器上使用具有相同 redis 版本的 Laravel redis,其中一台内存使用量更大

php - fbs文章点击和网址缩短器之间的差异

mysql - 如何使用 PHPstorm 连接 Openshift Mysql 数据库?

java - 使用变量将整数值插入 MySQL 数据库