enter image description here问题是我的表的内容未显示。它正在计数并显示我数据库中的相等行,但未显示任何内容。你能帮我吗?
index.php
<?php
include('db.php');
$limit = 2;
if (isset($_GET["page"])) { $page = $_GET["page"]; } else { $page=1; };
$start_from = ($page-1) * $limit;
$sql = "SELECT * FROM sales_order ORDER BY `so_id` ASC LIMIT $start_from, $limit";
$rs_result = mysqli_query($conn, $sql);
?>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>title</th>
<th>body</th>
</tr>
<thead>
<tbody>
<?php
while ($row = mysqli_fetch_assoc($rs_result)) {
?>
<tr>
<td><? echo $row["so_customer"]; ?></td>
<td><? echo $row["so_address"]; ?></td>
</tr>
<?php
};
?>
</tbody>
</table>
<?php
$sql = "SELECT COUNT('so_id') FROM sales_order";
$rs_result = mysqli_query($conn, $sql);
$row = mysqli_fetch_row($rs_result);
$total_records = $row[0];
$total_pages = ceil($total_records / $limit);
$pagLink = "<div class='pagination'>";
for ($i=1; $i<=$total_pages; $i++) {
$pagLink .= "<a href='index.php?page=".$i."'>".$i."</a>";
};
echo $pagLink . "</div>"; ?>
答案 0 :(得分:1)
您之前编辑过的问题几乎没有什么错,特别是在this one中,您将单引号从ORDER BY 'so_id'
改为使用反引号:
ORDER BY `so_id`
可以在以下参考资料中找到有关所谓的“标识符限定符”的更多信息:
然后谈论<? echo
。这些就是所谓的short tags,如果无法使用它们,则需要将它们更改为<?php echo
或<?=
,它们也一样。
然后在COUNT('so_id')
中引号。要么将它们删除,要么用反引号替换。
COUNT(`so_id`)
最后;您将在页面加载后立即收到未定义的索引通知:
<td><? echo $row["so_customer"]; ?></td>
<td><? echo $row["so_address"]; ?></td>
因此,为避免/纠正这些错误,请用以下内容替换它们:
<td><?php if(isset($row['so_customer'])){ echo $row["so_customer"]; } ?></td>
<td><?php if(!empty($row['so_address'])){ echo $row["so_address"]; }?></td>
为PHP启用错误报告并为MySQL启用错误处理在开发/调试过程中会有所帮助。