PHP页面化视图Mysql
下面你可以看到一个脚本,我正在我的网站上尝试。一切正常,但我在每页上只看到5次相同的记录,总是记录1。因为他没有进入第二张唱片,我错了什么 谢谢你的建议PHP页面化视图Mysql,php,mysqli,Php,Mysqli,下面你可以看到一个脚本,我正在我的网站上尝试。一切正常,但我在每页上只看到5次相同的记录,总是记录1。因为他没有进入第二张唱片,我错了什么 谢谢你的建议 <?php $per_page = 5; $query = "SELECT * FROM article"; $mysqli = mysqli_connect("localhost", "root", "******", "Website"); $res = mysqli_query($mysqli, $query); $row =
<?php
$per_page = 5;
$query = "SELECT * FROM article";
$mysqli = mysqli_connect("localhost", "root", "******", "Website");
$res = mysqli_query($mysqli, $query);
$row = mysqli_fetch_assoc($res);
$total_results = mysqli_num_rows($res);
$total_pages = ceil($total_results / $per_page);
if (isset($_GET['page']) && is_numeric($_GET['page']))
{
$show_page = $_GET['page'];
if ($show_page > 0 && $show_page <= $total_pages)
{
$start = ($show_page -1) * $per_page;
$end = $start + $per_page;
}
else
{
// error - show first set of results
$start = 0;
$end = $per_page;
}
}
else
{
$start = 0;
$end = $per_page;
}
echo "<p><a href='articles.php'>view All</a> | <b>By Page:</b> ";
for ($i = 1; $i <= $total_pages; $i++)
{
echo "<a href='articlespagenated.php?page=$i'>$i</a> ";
}
echo "</p>";
echo "</p>";
echo "<table border='1' cellpadding='10'>";
echo "<tr> <th>ArtID</th> <th>Art Pictureto</th> <th></th> <th></th></tr>";
for ($i = $start; $i < $end; $i++) {
if ($i == $total_results) { break; }
echo "<tr>";
echo '<td width="40" align="center" valign="middle">' . $row['artid'] . '</td>';
echo '<td width="130" align="center" valign="middle">' . $row['artfoto'] . '</td>';
echo '<td width="40" align="center" valign="middle"><a href="articleedit.php?artid=' . $row['artid'] . '">Edit</a></td>';
echo '<td width="40" align="center" valign="middle"><a href="artikcledelete.php?artid=' . $row['artid'] . '">Delete</a></td>';
echo "</tr>";
}
echo "</table>";
?>
问题在于您只抓取了第一行:
$query = "SELECT * FROM article";
$mysqli = mysqli_connect("localhost", "root", "******", "Website");
$res = mysqli_query($mysqli, $query);
$row = mysqli_fetch_assoc($res);
您需要的是在mysqli\u fetch\u assoc上循环:
$query = "SELECT * FROM article";
$mysqli = mysqli_connect("localhost", "root", "******", "Website");
$res = mysqli_query($mysqli, $query);
$rows = [];
while (($row = mysqli_fetch_assoc($res)) !== null) {
$rows[] = $row;
}
然后,您可以在$rows
上使用foreach()
输出数据
对于分页,我建议使用mysql的LIMIT
和OFFSET
功能:
$page = 2;
$rows_per_page = 5;
$offset = $page * $rows_per_page;
$query = "SELECT * FROM article LIMIT $rows_per_page OFFSET $offset";
$mysqli = mysqli_connect("localhost", "root", "******", "Website");
$res = mysqli_query($mysqli, $query);
$rows = [];
while (($row = mysqli_fetch_assoc($res)) !== null) {
$rows[] = $row;
}
如果要从用户那里获得此信息,请确保对$page
进行清理,或者查看准备好的语句