我正在使用此while语句来显示数据库的所有内容......
$sql = mysql_query("SELECT id,question,date,user,numberofcomments,body,locked FROM questions ORDER BY id DESC");
while($row=mysql_fetch_assoc($sql)) {
echo '<div class="comment">';
echo '<div class="leftpart">';
echo "<div class='date'><img src='../assets/icons/Time-info.png'> ".ago($row['date']);
echo "</div><br><img src='../assets/icons/User-Info.png'> ".$row['user'];
echo "<br><img src='../assets/icons/Comments.png'> ".$row[numberofcomments];
echo '</div>';
echo '<div class="rightpart-topic">';
if($row['locked']==1) { echo '<img src="../assets/icons/Lock.png" /> ';
}
echo '<a href="topic.php?id='.$row[id].'">'.$row['question'].'</a>';
echo '<br>'.substr($row['body'],0,70).'...';
echo '</div>';
echo '</div>';
}
我想只显示10行,然后有链接显示其余部分(如第1,2,3,4页,最后一个类型)。我该怎么做呢?如果您也可以解释您的代码,将会有所帮助,因为我们将非常感激。它有助于我的学习过程。
谢谢!
答案 0 :(得分:0)
您需要使用某种传递的$ _GET变量在查询中执行LIMIT。
$start=0;
$limit = 10;
$page = (isset($_GET['page']) ? : 0));
$start = $page * $limit;
$sql = mysql_query("SELECT id,question,date,user,numberofcomments,body,locked FROM questions ORDER BY id DESC LIMIT {$start},{$limit}");
应该是非常自我解释的。
如果没有设置页面变量,那么您正在查看第0页或数据库查询的前10个结果。如果page = 1,那么您将查看$ page(value = 1)* $ limit(10)= $ start(现在值为10),这将给出结果10-20或第1页等。
因此,为您的用户提供一个按钮,可以将它们链接到硬分页链接,或者将其作为ajax。
每个网址都需要如此:
http://wwww.yoursite.com/somepage.php?page=1
答案 1 :(得分:-1)
除了效率之外,你可以简单地设置一个计数器并在循环期间检查它的值是否大于10。如果是这样,请将“隐藏”类添加到父div。该类将使用display:none;