PHP查询表为foreach()提供的参数无效

PHP查询表为foreach()提供的参数无效,php,mysql,crud,Php,Mysql,Crud,我对PHP非常陌生,我正在尝试显示一个表,就像我为PHP CRUD Grid所做的那样(查看图片),但由于某种原因,我复制的index.PHP中的foreach语句不起作用。我得到一个错误,看起来像这样[ 为第79行中的foreach()提供的参数无效 ] 我还使用以下代码创建了一个表 CREATE TABLE IF NOT EXISTS `category` ( `category_category_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,

我对PHP非常陌生,我正在尝试显示一个表,就像我为PHP CRUD Grid所做的那样(查看图片),但由于某种原因,我复制的index.PHP中的foreach语句不起作用。我得到一个错误,看起来像这样[

为第79行中的foreach()提供的参数无效 ]

我还使用以下代码创建了一个表

CREATE TABLE  IF NOT EXISTS `category` (
`category_category_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`category_name` VARCHAR( 100 ) NOT NULL
) ENGINE = INNODB;

INSERT INTO `category` (`category_category_id`, `category_name`) VALUES
(1,'Drinks')
我的数据库在PHPmyadmin上看起来像这样

这是我在第一个网格中使用的代码:

                   include_once 'database.php';
                   $pdo = Database::connect();
                   $sql = 'SELECT * FROM product ORDER BY id DESC';
                   foreach ($pdo->query($sql) as $row) {
                            echo '<tr>';
                            echo '<td>'. $row['id'] . '</td>';
                            echo '<td>'. $row['category_id'] . '</td>';
                            echo '<td>'. $row['brand'] . '</td>';
              echo '<td>'. $row['name'] . '</td>';
              echo '<td>'. $row['barcode'] . '</td>';
              echo '<td>'. $row['price'] . '</td>';
include_once'database.php';
$pdo=数据库::连接();
$sql='SELECT*FROM product ORDER BY id DESC';
foreach($pdo->query($sql)作为$row){
回声';
回显'.$row['id'].';
回显'.$row['category_id'].';
回音'.$row['brand'].';
回显'.$row['name'].';
回显“.$row['barcode']”;
回显'.$row['price'].';
这是我试图为第二个网格复制的错误代码

     $pdo = Database::connect();
    $sql = 'SELECT * FROM category ORDER BY id DESC';
    foreach ($pdo->query($sql) as $row) {
         echo '<tr>';
         echo '<td>'. $row['id'] . '</td>';
         echo '<td>'. $row['category_name'] . '</td>';
$pdo=Database::connect();
$sql='SELECT*按id DESC从类别顺序中选择';
foreach($pdo->query($sql)作为$row){
回声';
回显'.$row['id'].';
回显'.$row['category_name'].';
index.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <link   href="css/bootstrap.min.css" rel="stylesheet">
    <script src="js/bootstrap.min.js"></script>
</head>

<body>
    <div class="container">
            <div class="row">
                <h3>PHP CRUD Grid</h3>
            </div>
            <div class="row">
                <p>
                    <a href="create.php" class="btn btn-success">Create</a>
                </p>

                <table class="table table-striped table-bordered">
                      <thead>
                        <tr>
                          <th>Id</th>
                          <th>CategoryId</th>
                          <th>Brand</th>
                          <th>Name</th>
                      <th>Barcode</th>
                      <th>Price</th>
                        </tr>
                      </thead>
                      <tbody>
                      <?php
                       include_once 'database.php';
                       $pdo = Database::connect();
                       $sql = 'SELECT * FROM product ORDER BY id DESC';
                       foreach ($pdo->query($sql) as $row) {
                                echo '<tr>';
                                echo '<td>'. $row['id'] . '</td>';
                                echo '<td>'. $row['category_id'] . '</td>';
                                echo '<td>'. $row['brand'] . '</td>';
                  echo '<td>'. $row['name'] . '</td>';
                  echo '<td>'. $row['barcode'] . '</td>';
                  echo '<td>'. $row['price'] . '</td>';
                                echo '<td width=250>';
                                echo '<a class="btn" href="read.php?id='.$row['id'].'">Read</a>';
                                echo '&nbsp;';
                                echo '<a class="btn btn-success" href="update.php?id='.$row['id'].'">Update</a>';
                                echo '&nbsp;';
                                echo '<a class="btn btn-danger" href="delete.php?id='.$row['id'].'">Delete</a>';
                                echo '</td>';
                                echo '</tr>';
                       }

                      ?>
                      </tbody>
                </table>

              <div class="container">
              <div class="row">
              <h3>PHP CRUD Grid</h3>
              </div>
              <div class="row">
              <p>
              <a href="createCategory.php" class="btn btn-success">Create</a>
              </p>
              <table class="table table-striped table-bordered">
              <thead>
              <tr>
                <th>CategoryId</th>
                <th>Category Name</th>
              </tr>
            </thead>


            <?php
            include_once 'database.php';
            $pdo = Database::disconnect();
             $pdo = Database::connect();
            $sql = 'SELECT * FROM category ORDER BY id DESC';
            foreach ($pdo->query($sql) as $row) {
                 echo '<tr>';
                 echo '<td>'. $row['id'] . '</td>';
                 echo '<td>'. $row['category_name'] . '</td>';
                 echo '<td width=250>';
                 echo '<a class="btn" href="readCategory.php?id='.$row['id'].'">Read</a>';
                 echo '&nbsp;';
                 echo '<a class="btn btn-success" href="updateCategory.php?id='.$row['id'].'">Update</a>';
                 echo '&nbsp;';
                 echo '<a class="btn btn-danger" href="deleteCategory.php?id='.$row['id'].'">Delete</a>';
                 echo '</td>';
                 echo '</tr>';

             }
             Database::disconnect();
            ?>
              </tbody>
            </table>
        </div>
    </div>


  </body>
</html>
      <!--              <div class="container">
                    <div class="row">
                    <h3>PHP CRUD Grid</h3>
                    </div>
                    <div class="row">
                    <p>
                    <a href="create.php" class="btn btn-success">Create</a>
                    </p>
                            <table class="table table-striped table-bordered">
                    <thead>
                    <tr>
                      <th>CategoryId</th>
                      <th>Catengory Name</th>
                    </tr>
                  </thead>

                  $sql2 = 'SELECT * FROM category ORDER BY id DESC';
                  foreach ($pdo->query($sql2) as $row) {
                       echo '<tr>';
                       echo '<td>'. $row['id'] . '</td>';
                       echo '<td>'. $row['category_name'] . '</td>';

                       echo '<td width=250>';
                       echo '<a class="btn" href="readCategory.php?id='.$row['id'].'">Read</a>';
                       echo '&nbsp;';
                       echo '<a class="btn btn-success" href="updateCategory.php?id='.$row['id'].'">Update</a>';
                       echo '&nbsp;';
                       echo '<a class="btn btn-danger" href="deleteCategory.php?id='.$row['id'].'">Delete</a>';
                       echo '</td>';
                       echo '</tr>';
                     </div>
                   }
                   Database::disconnect();
                  ?>
                    </tbody>
                  </table> -->

PHP积垢网格

身份证件 类别 烙印 名称 条形码 价格 PHP积垢网格

类别 类别名称
我认为这是因为表类别中没有id字段?您有类别\u类别\u id

CREATE TABLE  IF NOT EXISTS `category` (
`category_category_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`category_name` VARCHAR( 100 ) NOT NULL
) ENGINE = INNODB;
所以

$sql='SELECT*FROM category ORDER BY category_category_id DESC';
foreach($pdo->query($sql)作为$row){
回声';
回显'.$row['category\u category\u id'.';
回显'.$row['category_name'].';

您试图按“id”订购,而实际上它是“category\u category\u id”在db表中。在循环中的代码中将所有引用从id更改为category\u category\u id。

问题出在哪里?这是一大堆代码和一个我无法理解的难以辨认的屏幕截图。你能用更具体的术语描述问题吗?如果你在第一张图片中查看,它会显示一个错误,该错误是无效参数为foreach()提供第79行中的图像是微观的。在处理错误消息时,请以纯文本形式发布。这不仅提高了可读性,还意味着其他人可以搜索这些图像。第79行是什么?
orderbyid
你没有
id
列。你有
category\u category\u id
。你有了它奥尔克斯,这不是让category\u category\u id成为id吗?但它不叫“id”…名称很重要!哦,所以我必须将
category\u category\u id
INT NOT NULL AUTO\u INCREMENT主键转换为
id
INT NOT NULL AUTO\u INCREMENT主键!我马上就试试!不,你可以使用我给你的代码。用category\u category\u id替换id谢谢!在尝试修复它几个小时后终于工作了!是的,谢谢这是反馈,它现在起作用了
$sql = 'SELECT * FROM category ORDER BY category_category_id DESC';
    foreach ($pdo->query($sql) as $row) {
         echo '<tr>';
         echo '<td>'. $row['category_category_id'] . '</td>';
         echo '<td>'. $row['category_name'] . '</td>';