Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP for MySQL查询中while()循环内的随机跳转_Php_Mysql - Fatal编程技术网

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

PHP for MySQL查询中while()循环内的随机跳转,php,mysql,Php,Mysql,我正在为大学做一个示例项目,遇到了一个我无法解决的问题。 通常,该项目是在Apache上用PHP和MySQL创建一个自动比萨饼订购系统。系统通过以下步骤工作: -客户下订单->面包师收到订单,继续->司机在特定状态下收到订单,继续 -客户可以通过会话随时查看订单 现在,我在最后一步挂断了电话:驱动程序可以看到一个页面,其中有一个表,其中包含baker处理和传递的信息(所有更改都在数据库端)。驱动程序只能看到一个完整的包(只要所有的比萨饼都标记为特定的状态,也保存在DB中) 为此,我有以下SQL语

我正在为大学做一个示例项目,遇到了一个我无法解决的问题。 通常,该项目是在Apache上用PHP和MySQL创建一个自动比萨饼订购系统。系统通过以下步骤工作: -客户下订单->面包师收到订单,继续->司机在特定状态下收到订单,继续 -客户可以通过会话随时查看订单

现在,我在最后一步挂断了电话:驱动程序可以看到一个页面,其中有一个表,其中包含baker处理和传递的信息(所有更改都在数据库端)。驱动程序只能看到一个完整的包(只要所有的比萨饼都标记为特定的状态,也保存在DB中)

为此,我有以下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\u dump()
获取
mysqli\u num\u 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\u dump()
的输出时,一切都是正确的。但是,
var\u dump($this->query)也没有显示特定跳转的查询语句

你知道这是什么吗?完整链接到下面的粘贴库

为了不把这个问题扩展到最大程度,我在这里将整个代码上传到pastebin:

离题:谢谢你的帮助,谢谢。如果我没有弄清楚我的确切问题,或者如果我的问题出现任何问题,请评论,我会澄清。谢谢。

while($row=mysqli\u fetch\u数组($this->result)){
$count=mysqli\u num\u行($tmpResult);
对于($i=0;$i<$count;$i++){
$tmpVar=mysqli\u fetch\u数组($this->result);
我剪掉了代码以显示问题

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


正如Marc B所说,这是一个简单的查询,内部联接/左联接到查询上。最好使用联接。

你在“比萨饼”上有我。然后你失去了我。你运行嵌套查询,其中内部查询使用外部查询的数据?你应该将其作为单个
联接
ed查询重新编写。是的,这样做了。我已经完成了n今天工作了很长时间。非常感谢!我不知道的是,当我使用动态数据从新查询中检索数据时,如何编写此查询?我无法更改表结构,也无法向数据库添加或删除表(任务限制)
                    while($row = mysqli_fetch_array($this->result)) { 
                        $count = mysqli_num_rows($tmpResult);

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

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