2011-03-16 54 views
1

如何选择前5个结果,然后添加更多选项?如何只选择前5个结果,然后显示更多..选项?

下面是当前的代码:

<?php 

    $query="SELECT * FROM messages where u_id = '$uid' ORDER BY id DESC"; 
    $result=mysql_query($query); 

    $num=mysql_numrows($result); 

    mysql_close(); 

    echo ""; 

    $i=0; 
    while ($i < $num) { 

    $otheris=mysql_result($result,$i,"sender_full_name"); 
    $sysid=mysql_result($result,$i,"sender_id"); 
    $dob=mysql_result($result,$i,"dob"); 

    // If $dob is empty 
    if (empty($dob)) { 

    $dob = "No new messages - 
    <a id=missingdob href=/test.php?id=$uid> 
    <bold>check later</bold></a>"; 
    } 

    echo "<br><div id=linkcontain> 
    <a id=otherlink href=$mem/profile.php?id=$uid> 
    $manitis</a> 
     <br><div id=dobpres>$dob</div></div>"; 

    echo ""; 

    $i++; 
     } 

     ?> 
+1

我假设你知道'LIMIT' ...对吗?或者......那是你想知道的吗? – 2011-03-16 22:22:54

+0

不确定关于限制.. – AAA 2011-03-16 22:24:22

回答

1
$query="SELECT * FROM messages where u_id = '$uid' ORDER BY id DESC LIMIT 5"; 

http://dev.mysql.com/doc/refman/5.5/en/select.html

你可以考虑LIMIT 6只显示多达5个,如果存在6显示有更多的选择......

+0

一个跟进。我如何仅在有超过5个结果的地方显示“查看更多”? – AAA 2011-03-16 22:31:15

+0

你可以考虑限制6只显示最多5如果第6存在显示有更多的选项... – bensiu 2011-03-16 22:37:34

2

您应该尝试首次选择6行,如果您获得6条记录,则首先显示5个“显示更多选项”

"SELECT * FROM messages where u_id = '$uid' ORDER BY id DESC LIMIT 0, 6"; 

对于随后的时间,你应该有你的查询是这样的:每次

"SELECT * FROM messages where u_id = '$uid' ORDER BY id DESC LIMIT 6, 5"; 
"SELECT * FROM messages where u_id = '$uid' ORDER BY id DESC LIMIT 11, 5"; 
"SELECT * FROM messages where u_id = '$uid' ORDER BY id DESC LIMIT 16, 5"; 
... 
... 

和“显示更多选项”,如果你能获取的记录请求数量。

+1

你缺少第一个记录 - 限制开始于0 – bensiu 2011-03-16 22:37:09

+1

@ bensiu:感谢指出,我更新了它。 – anubhava 2011-03-16 22:55:00

+0

如何检测超过5条记录并显示选项以查看更多...感谢Anubhava。 – AAA 2011-03-17 15:42:30

相关问题