我不确定是否有人之前做过类似事情。
这是场景:我将mysql结果加载到PHP数组中,然后将其添加到会话中。我希望能够按两个按钮(上一个/下一个)来浏览结果。这是可行的吗?
这是我的代码:
include('config.php');
$con = mysql_connect($host, $username, $password);
if(!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db('members', $con) or die(mysql_error());
$sql = "SELECT * FROM people where status like 'married' ";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
$result_array[] = $row['id'];
}
return $result_array;
session_start();
$_SESSION['theResult'] = $result_array;
mysql_close($con);
答案 0 :(得分:0)
您至少需要两个会话变量:
从会话中的一系列项目开始,索引为0.“下一步”按钮将偏移量增加N(其中N是页面上显示的项目数)。 上一个减少它。 (一直检查以确保我们有足够的物品来制作开关)。因此,例如,如果您有一个包含10个项目的列表,并且我们希望每页显示三个项目:
$_SESSION['item'] = array('a','b','c','d','e','f','g','h','i','j');
$_SESSION['offset'] = 0;
$itemsPerPage = 3;
对next / prev的任何调用都会将$_SESSION['offset']
更改为$itemsPerPage
金额(正面或负面)。然后,显示项目是一个问题:
$end = $_SESSION['offset'] + $itemsPerPage;
if ($end >= sizeof($_SESSION['items']))
{
// never go past the number of items we have
$end = sizeof($_SESSION['items']) - 1;
}
for ($i = $_SESSION['offset']; $i < $end; $i++){
//output $_SESSION['items'][$i];
}
对于单个项目显示,$itemsPerPage
变得没有实际意义,您需要跟踪的是$_SESSION['offset']
并在会话数组中显示该存储偏移量的项目。 e.g。
$currentItem = $_SESSION['offset'];
//output $_SESSION['items'][$currentItem];
答案 1 :(得分:0)
未经测试但是会有这样的工作吗?
$_SESSION["current"] = $_SESSION["current"] || 0;
if(isset($_POST["move"])) {
if($_POST["move"] == "prev") {
echo $_SESSION['theResult'][$_SESSION["current"] == 0 ? 0 : $_SESSION["current"]--];
} else if($_POST["move"] == "next") {
echo $_SESSION['theResult'][$_SESSION["current"] == count($_SESSION['theResult'])-1 ? count($_SESSION['theResult'])-1 : $_SESSION["current"]++];
}
}