-2

我正在尝试制作一个简单的“加载更多”按钮,其中我有一个 ajax 请求加载更多页面,该页面加载更多数据库条目。我的问题是我可以像这样做我的选择语句:

$result = $db->query("SELECT uid,username,image FROM tbl_multimedia LIMIT 3");

但是每次单击它时,我都会看到前 3 个结果,而不是第四个,依此类推。此代码不计算或检查最后加载的 id 并从下一个开始。我试图保持简单,任何关于我可以在此处添加以使其计数的快速想法。我已经准备好javascript部分并使用AJAX,我只是被困在这里。

我的代码如下:

try 
{
    // Query multimedia table
    $result = $db->query("SELECT uid,username,image FROM tbl_multimedia LIMIT 3");

    // Convert the object to a string
    $result->unescape(array(
        'username'      => 'string',
        'image' => 'string',
        'uid' => 'integer'
    ));

    // No users in our app :(
    $result->tossIfNoRows();
    ?>

    <?
    // Magic happens -> Create rows with every name found in the database
    foreach ($result as $row) 
    {
        ?>
        <div class="g_holder">
        <? echo '<a href="profile.php?user_id='.$row['uid'].'" ><img src="img/'.$row['image'].'" width="120" height="120"/></a>'; ?>
        <div class="g_caption">
            <p class="g_txt">
                <? echo $row['username']; ?>
            </p>
        </div>
        </div>
        <?
    }

} 
catch (fNoRowsException $e) 
{
    ?>
    <p>noone cares about using my app!</p>
    <?php
}
4

4 回答 4

1

你需要的是一个偏移量。所以你的查询应该是这样的:

"SELECT uid,username,image FROM tbl_multimedia LIMIT {$offset},3"

其中 offset 是每次点击后增加 3 的数字。

因此,您的页面第一次加载时将是0,在第一次单击之后$offset = 3,然后是下一次$offset = 6,依此类推。

于 2012-12-09T01:21:30.433 回答
0

“有两个参数,第一个参数指定要返回的第一行的偏移量,第二个指定要返回的最大行数。初始行的偏移量是0(不是1):”

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

于 2012-12-09T01:19:22.250 回答
0

如果您加载了 10 个条目并想要加载 3 个附加条目,LIMIT 11,13请尝试在第十个之后获得 3 个条目。

于 2012-12-09T01:22:02.330 回答
0

尝试使用偏移量。请参阅MYSQL 文档

$result = $db->query("SELECT uid,username,image FROM tbl_multimedia LIMIT 3 OFFSET {$offset}");
于 2012-12-09T01:23:31.730 回答