简体   繁体   English

php while循环只显示跨多个表的mysql查询的一个结果

[英]php while loop only displays one result for a mysql query across multiple tables

I am having an issue with a while statement only returning one result. 我遇到了一个只返回一个结果的while语句的问题。 this is my first time trying to display product information from several tables and I don't know what I'm doing wrong. 这是我第一次尝试从几个表中显示产品信息而我不知道我做错了什么。 here is the code: 这是代码:

<?php
    require('./includes/config.inc.php');
    require(MYSQL);

    $sql = sprintf("SELECT * FROM tea");

    $res = mysqli_query($dbc, $sql);

    if(!$res){
    die('Could not complete query: '.mysqli_error($dbc));
    } else {

    echo 'Success!<br />';

    while($row = mysqli_fetch_array($res)){
        $table = $row['category'];
        $inum = $row['item_number'];

        echo $table.' '.$inum.'<br />';

        $fetch = sprintf("SELECT sub_category, item_name, description FROM $table WHERE item_number ='$inum'");
        $fetchRes = mysqli_query($dbc, $fetch);

        if(!$fetchRes){
            die('Could not fetch: '.mysqli_error($dbc));
        } else {
            while($fetchRow = mysqli_fetch_array($fetchRes)){
                $subCat = $fetchRes['sub_category'];
                $iNumber = $inum;
                $iname = $fetchRes['item_name'];
                $desc = $fetchRes['description'];

                echo $id.' '.$subCat.' '.$iNumber.' '.$iname.' '.$desc.'<br />';
            }
        }
    }
}

在while循环中,您应该使用$fetchRow变量作为从中获取列的数组,例如'sub_category'。

IS IS

  $subCat = $fetchRes['sub_category'];
  $iNumber = $inum;
  $iname = $fetchRes['item_name'];
  $desc = $fetchRes['description'];

Needs to be: Res to Row 需要:Res to Row

 $subCat = $fetchRow['sub_category'];
 $iNumber = $inum;
 $iname = $fetchRow['item_name'];
 $desc = $fetchRow['description'];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM