在几个php页面之间传递数组

时间:2013-07-18 16:24:54

标签: php mysql arrays

我正在开发一个项目,我使用数据库来存储一些书籍信息。 在第一步,我将数据库中的所有书籍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页面之间传递数组吗?

感谢有人能给我提示。

4 个答案:

答案 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();在每页的最顶部。