PHP查询表为foreach()提供的参数无效
我对PHP非常陌生,我正在尝试显示一个表,就像我为PHP CRUD Grid所做的那样(查看图片),但由于某种原因,我复制的index.PHP中的foreach语句不起作用。我得到一个错误,看起来像这样[ 为第79行中的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 ,
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 ' ';
echo '<a class="btn btn-success" href="update.php?id='.$row['id'].'">Update</a>';
echo ' ';
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 ' ';
echo '<a class="btn btn-success" href="updateCategory.php?id='.$row['id'].'">Update</a>';
echo ' ';
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 ' ';
echo '<a class="btn btn-success" href="updateCategory.php?id='.$row['id'].'">Update</a>';
echo ' ';
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>';