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