3

私は、データベースを使用して書籍情報を保存するプロジェクトに取り組んでいます。最初のステップでは、データベースからすべての書籍 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';
    }

ユーザーが画像リストをクリックすると、別のページ、たとえば詳細ページが表示され、書籍のすべての詳細、たとえば価格、著者などが表示されます。また、2 つのボタンを設計しました。ユーザーがメインのリストに戻らずに次の本に移動できるように、前と次。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

4 に答える 4

0

それがすべての本のリストである場合、なぜそれをユーザーに渡したいのでしょうか? リストに特定のフィルターが含まれている場合、ユーザーはそれをセッションに保存するか、フィルターをリンクに追加するかを選択します。どちらの方法でも、リンクを次のようbook_detail.php?id=Xに表示し、ユーザーが要求したときに ID X の本の詳細を選択し、そこから他の 2 つの位置へのリンクを作成する必要があります (db への単純なクエリは、これらの 2 つの行とそれらのみを取得します)。

于 2013-07-18T16:36:46.230 に答える