我正在开发一个项目,我使用数据库来存储一些书籍信息。 在第一步,我将数据库中的所有书籍ID放入一个数组中,并使用该数组创建一个图像列表。这是我的程序生成变量$ previous_index&来自数组$ book_list的$ next_index,其中$ book_list存储整个数据库中书籍的所有ID:
while($row = mysqli_fetch_array($sql)) {
$current_index = find_array_index($current_id,$book_list);
$next_index = $current_index + 1;
$previous_index = $current_index - 1;
// previous key / returns false if result found at first key
if ($previous_index >= 0) {
$previous_id = $book_list[$previous_index];
}
else {
$previous_id = 'Null';
}
// previous key / returns false if result found at first key
if ($next_index <= sizeof($book_list)) {
$next_id = $g_list[$next_index];
}
else {
$next_id = 'Null';
}
当用户点击图片列表时,他们会被引导到另一个页面,说明详细页面,这将显示书籍的所有细节,说价格,作者......还有,我设计的两个按钮,上一个和下一个,这样用户可以移动到下一本书而无需返回主列表。 我尝试使用serialize方法将数组$ book_list传递给详细信息页面:
// pass global array between pages
$global_array = urlencode(serialize($book_list));
$link = 'book_detail.php?id=' . $current_id . '&array=' . $global_array ;
并在详细信息页面中获取数组的内容:
print_r(unserialize(urldecode(stripslashes($_GET['array']))));
但是,它在print_r函数中没有显示任何内容。
我的程序有问题吗? 还有一种方法可以满足我的要求,而不需要在几个php页面之间传递数组吗?
感谢有人能给我提示。
答案 0 :(得分:2)
这样做......
<?php
session_start();
然后在会话变量
中创建数组$_SESSION['bookarray'] = '...';
在所有其他页面上,只要您致电
,就可以访问session_start()
位于页面顶部。
答案 1 :(得分:0)
你能不能使用$ _SESSION []传递它?
答案 2 :(得分:0)
如果它是所有书籍的列表,您为什么要将它传递给用户?
如果列表包含特定过滤器,则用户选择将其存储在会话中或将过滤器添加到链接。
无论哪种方式,您都应该使链接看起来像book_detail.php?id=X
,只需在用户请求时选择带有ID X的书的详细信息,并从那里创建指向其他两个位置的链接(对db的简单查询将拉出这两行只有他们。)
答案 3 :(得分:0)
谢谢大家!我可以使用$ SESSION解决问题。也许我错过了把session_start();在每页的最顶部。