簡體   English   中英

在幾個php頁面之間傳遞數組

[英]Passing an array between several php pages

我正在開發一個項目,我使用數據庫來存儲一些書籍信息。 在第一步,我將數據庫中的所有書籍ID放入一個數組中,並使用該數組創建一個圖像列表。 這是我從程序$ book_list生成變量$ previous_index&$ 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頁面之間傳遞數組?

如果有人能給我提示,感激不盡。

做這個...

<?php
session_start();

然后在會話變量中創建數組

$_SESSION['bookarray'] = '...';

在所有其他頁面上,只要您打電話,這將是可訪問的

session_start()

在頁面頂部。

你能不能使用$ _SESSION []傳遞它?

如果它是所有書籍的列表,你為什么想要將它傳遞給用戶呢? 如果列表包含特定過濾器,則用戶選擇將其存儲在會話中或將過濾器添加到鏈接。 無論哪種方式你都應該使linky看起來像book_detail.php?id=X並且當用戶請求它時只選擇帶有id X的書的細節並從那里創建到另外兩個位置的鏈接(對db的簡單查詢將拉出那些兩行,只有他們)。

感謝大家! 我可以使用$ SESSION解決問題。 也許我錯過了把session_start(); 在每頁的最頂部。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM