在查询之前,我一直在使用分页类,但现在我已经通过$stmt->fetch()语句使用准备好的语句进行查询,现在我不知道如何分页。我一直在查看和检查堆栈溢出的文献,似乎有一些现成的解决方案,一些命令或一些:排序->材料。
如何对此循环的结果进行分页?在“预准备语句的世界”中有没有一些命令?有没有显示的链接、页面或网站?
while( $stmt->fetch() )
{
printf("%s%s%s%s", $Email, $Webpage, $Telephone, $Mobile);
}
发布于 2012-05-30 04:27:03
方法1:get_result()
*注:此方法仅适用于5.3,具有>=本机驱动。
假设这是使用MySQLi完成的,并且您已经通过bind_result()
将这些变量绑定为结果变量,我将使用get_result()
将其传输到MySQLi结果资源中,并将行作为数组提取到包含所有行的数组中。然后使用通常在数组数据上使用的任何分页方法或插件:
// Don't use bind_result()...
// execute your statement
$stmt->execute();
// Get result set into a MySQLi result resource
$result = $stmt->get_result();
// array to hold all results
$rowset = array();
// And fetch with a while loop
while ($row = $result->fetch_assoc()) {
$rowset[] = $row;
}
var_dump($rowset);
现在将$rowset
用作2D数组,通过它,您可以使用在常规数组上操作的任何分页方法。
方法2:使用绑定的输出变量构建数组
如果您没有mysqlnd本机驱动程序(因此不能使用get_result()
,请继续使用bind_result()
,但将所有这些内容附加到一个数组中:
// array to hold all rows
$rowset = array();
// All results bound to output vars
while ($stmt->fetch()) {
// Append an array containing your result vars onto the rowset array
$rowset[] = array(
'email' => $Email,
'webpage' => $Webpage,
'telephone' => $Telephone,
'moblile' => $Mobile
);
}
var_dump($rowset);
https://stackoverflow.com/questions/10806038
复制相似问题