我是PHP和MySQL的新手,我只是想不出这个。我在论坛周围搜索过但没有找到答案。问题是我删除了CMS中的所有帖子,它显示以下错误:
我犯了错误?
提前感谢您的帮助!
我的源代码:
<?php
$query = "SELECT * FROM posts";
$select_posts = mysqli_query($connection, $query);
while($row = mysqli_fetch_assoc($select_posts)) {
$post_id = $row['post_id'];
$post_author = $row['post_author'];
$post_title = $row['post_title'];
$post_category_id = $row['post_category_id'];
$post_status = $row['post_status'];
$post_image = $row['post_image'];
$post_tags = $row['post_tags'];
$post_comment_count = $row['post_comment_count'];
$post_date = $row['post_date'];
}
echo "<tr>";
echo "<td>$post_id</td>";
echo "<td>$post_author</td>";
echo "<td>$post_title</td>";
$query = "SELECT * FROM categories WHERE cat_id = {$post_category_id} ";
$select_categories_id = mysqli_query($connection, $query);
while($row = mysqli_fetch_assoc($select_categories_id)) {
$cat_id = $row['cat_id'];
$cat_title = $row['cat_title'];
echo "<td>{$cat_title}</td>";
}
echo "<td>$post_status</td>";
echo "<td><img src='../images/$post_image' width='150' height='50'></td>";
echo "<td>$post_tags</td>";
echo "<td>$post_comment_count</td>";
echo "<td>$post_date</td>";
echo "<td><a href='posts.php?source=edit_post&p_id={$post_id}'>Edit</a></td>";
echo "<td><a href='posts.php?delete={$post_id}'>Delete</a></td>";
echo "</tr>";
?>
答案 0 :(得分:0)
如果您删除了所有记录,那么在尝试将它们回显到屏幕之前,您应该进行逻辑测试以检查是否有一些记录。
<?php
$query = "SELECT * FROM posts";
$select_posts = mysqli_query( $connection, $query );
/* check there are records in recordset */
if( mysqli_num_rows( $select_posts ) > 0 ) {
while($row = mysqli_fetch_assoc($select_posts)) {
$post_id = $row['post_id'];
$post_author = $row['post_author'];
$post_title = $row['post_title'];
$post_category_id = $row['post_category_id'];
$post_status = $row['post_status'];
$post_image = $row['post_image'];
$post_tags = $row['post_tags'];
$post_comment_count = $row['post_comment_count'];
$post_date = $row['post_date'];
}
echo "<tr>";
echo "<td>$post_id</td>";
echo "<td>$post_author</td>";
echo "<td>$post_title</td>";
$query = "SELECT * FROM categories WHERE cat_id = {$post_category_id} ";
$select_categories_id = mysqli_query($connection, $query);
while( $row = mysqli_fetch_assoc( $select_categories_id ) ) {
$cat_id = $row['cat_id'];
$cat_title = $row['cat_title'];
echo "<td>{$cat_title}</td>";
}
echo "<td>$post_status</td>";
echo "<td><img src='../images/$post_image' width='150' height='50'></td>";
echo "<td>$post_tags</td>";
echo "<td>$post_comment_count</td>";
echo "<td>$post_date</td>";
echo "<td><a href='posts.php?source=edit_post&p_id={$post_id}'>Edit</a></td>";
echo "<td><a href='posts.php?delete={$post_id}'>Delete</a></td>";
echo "</tr>";
}
?>
答案 1 :(得分:0)
您必须将整个代码放入while循环中,因为这取决于查询的结果。
<?php
$query = "SELECT * FROM posts";
$select_posts = mysqli_query($connection, $query);
while($row = mysqli_fetch_assoc($select_posts)) {
$post_id = $row['post_id'];
$post_author = $row['post_author'];
$post_title = $row['post_title'];
$post_category_id = $row['post_category_id'];
$post_status = $row['post_status'];
$post_image = $row['post_image'];
$post_tags = $row['post_tags'];
$post_comment_count = $row['post_comment_count'];
$post_date = $row['post_date'];
echo "<tr>";
echo "<td>$post_id</td>";
echo "<td>$post_author</td>";
echo "<td>$post_title</td>";
$query = "SELECT * FROM categories WHERE cat_id = {$post_category_id} ";
$select_categories_id = mysqli_query($connection, $query);
while($row_inner = mysqli_fetch_assoc($select_categories_id)) {
$cat_id = $row_inner['cat_id'];
$cat_title = $row_inner['cat_title'];
echo "<td>{$cat_title}</td>";
}
echo "<td>$post_status</td>";
echo "<td><img src='../images/$post_image' width='150' height='50'></td>";
echo "<td>$post_tags</td>";
echo "<td>$post_comment_count</td>";
echo "<td>$post_date</td>";
echo "<td><a href='posts.php?source=edit_post&p_id={$post_id}'>Edit</a></td>";
echo "<td><a href='posts.php?delete={$post_id}'>Delete</a></td>";
echo "</tr>";
}
?>