当我以传统方式在查询之前执行时,我一直在使用分页类,但现在我已经使用预准备语句来执行查询,通过$ stmt-> fetch()语句,我不知道现在如何分页。我一直在环顾四周并检查stackoverflow文献,似乎有一些现成的解决方案,一些命令或一些:sort->东西。
你如何对这个循环中的内容进行分页? “准备好的陈述世界”中是否有一些命令?显示的任何链接,页面或网站?
while( $stmt->fetch() )
{
printf("%s%s%s%s", $Email, $Webpage, $Telephone, $Mobile);
}
答案 0 :(得分:2)
get_result()
:*注意:此方法仅适用于PHP> = 5.3,具有mysqlnd本机驱动程序。
假设这是使用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数组,您可以使用任何在常规数组上运行的分页方法。
如果您没有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);