使用分页输出数组

时间:2011-09-06 23:39:20

标签: php

这是我的代码

//select all the members id
$result = mysql_query("select id from member");

//create array of ids
$id = array();

// page is the number of my pagination numbering and its from 1 to 10
$dis = $page;// for example $page = 1

// $page get its value every time a user click my pagination numbering i.e $page = $_GET[page]; 
// guess you understand

while($u_id = mysql_fetch_assoc($result)){
    //id is my field name
    $id[] = $u_id[id];
}

echo $id[$dis];

我的问题是上面的代码只适用于10条记录中的4条记录。我的问题是,当数组索引是4,5时,为什么它不能在其他id上工作输出...以及我如何使它工作

其次,echo部分只是对我的想法的测试,但我想做的是将返回id传递给函数进行查询。请任何帮助

3 个答案:

答案 0 :(得分:2)

不确定这是否是您的问题,但如果不是您帖子中的类型,您可能需要更正此问题:

while($u_id = mysql_fetch_assoc($result)){
$id[] = $u_id['id']; // this should be 'id' not $id
}

答案 1 :(得分:0)

我想你想拥有:

while($u_id = mysql_fetch_assoc($result)){
$id[] = $u_id['id']; // changed from $id inside brackets
}

答案 2 :(得分:0)

对于初学者,当您使用mysql_fetch_assoc()时,您的$u_uid变量将不包含任何数字索引。事实上,它只会永远拥有'id'键,所以你的while循环应该看起来像这样

$id[] = $u_uid['id'];

这将在$id表中使用每个 id构建member数组,这可能不是您想要的。当你提到分页时,我希望你真的想要这样的东西

$page = isset($_GET['page']) ? (int) $_GET['page'] : 1;
$page = max(1, $page); // ensure page is 1 or greater

$rowCount = 5; // you can set this to whatever you want
$offset = ($page - 1) * $rowCount;

$result = mysql_query(sprintf('SELECT id FROM member ORDER BY id LIMIT %d, %d',
        $offset, $rowCount));