dsfdsf23423 2012-10-18 21:35
浏览 17
已采纳

如何限制使用SQL结果生成的页数

I have a pretty nice system in my code which puts my SQL result on different pages, 10 rows on each page. This is great and works exactly the way it should, but I would like to limit the number of pages generated. My result is in a specific order, but after 25 pages I think it's enough (that would be 250 results). What do I add to the code below in order to maximize the amount of pages created? Thanks in advance!

<?php 

// First I build my SQL which counts the amount of 
// rows, how this SQL query looks like depends on the 
// fields left blank and actually filled.

$sql = "SELECT COUNT(bedrijfsnaam) FROM profiles";

if ($bedrijfvariabele != " zoek op bedrijfsnaam.." && 
    $bedrijfvariabele != "") 
{
    $sql .= " WHERE bedrijfsnaam = '".$bedrijfvariabele."'";
}

if ($rubriekvariabele != " zoek op rubriek.." && 
    $rubriekvariabele != "" && 
    $bedrijfvariabele != " zoek op bedrijfsnaam.." && 
    $bedrijfvariabele != "") 
{
    $sql .= " AND (hoofdrubriek = '" . $rubriekvariabele . "' "
          . " OR subrubrieken LIKE '%" . $rubriekvariabele . "%')";
}

if ($rubriekvariabele != " zoek op rubriek.." && 
    $rubriekvariabele != "" && 
    ($bedrijfvariabele == " zoek op bedrijfsnaam.." || 
     $bedrijfvariabele == "")) 
{
    $sql .= " WHERE (hoofdrubriek = '" . $rubriekvariabele . "' "
          . " OR subrubrieken LIKE '%".$rubriekvariabele."%')";
}

if ($plaatsvariabele != " zoek op plaatsnaam.." && 
    $plaatsvariabele != "" && 
    (
        ($bedrijfvariabele != " zoek op bedrijfsnaam.." && 
         $bedrijfvariabele != "") || 
        ($rubriekvariabele != " zoek op rubriek.." && 
         $rubriekvariabele != "")
    )) 
{
    $sql .= " AND plaats = '".$plaatsvariabele."'";
}

if ($plaatsvariabele != " zoek op plaatsnaam.."  && 
    $plaatsvariabele != "" && 
    (
        ($bedrijfvariabele == " zoek op bedrijfsnaam.." || 
         $bedrijfvariabele == "")  && 
        ($rubriekvariabele == " zoek op rubriek.." || 
         $rubriekvariabele == "")
    )) 
{
    $sql .= " WHERE plaats = '".$plaatsvariabele."'";
}

// Now comes the interesting part for you guys

$rs_result     = mysql_query($sql); 
$row           = mysql_fetch_row($rs_result); 
$total_records = $row[0]; 
$total_pages   = ceil($total_records / 10); 

$template = '<a style="float:none;display:inline-block;color:white;'
          . 'width:22px;text-align:center;text-decoration:none;'
          . 'font-size:20px;background-color:#483435;margin-left:4px"'
          . ' href="%s".php?page=%s">%s</a>'; 


for ($i=1; $i <= $total_pages; $i++) 
{
    echo sprintf($template, $plaatsnaam7, $i, $i); 

}
  • 写回答

4条回答 默认 最新

  • dongluanban3536 2012-10-18 21:40
    关注

    It sounds like you simply need to use a LIMIT keyword on your query.

    Try something like this: SELECT * FROM PEOPLE LIMIT 10

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度