2013-07-18 4 views
3

저는 데이터베이스를 사용하여 일부 책 정보를 저장하는 프로젝트를 진행하고 있습니다. 첫 번째 단계에서는 데이터베이스의 모든 책 ID를 배열에 넣고 배열을 사용하여 이미지 목록을 만듭니다. 사용자가 이미지 목록을 클릭하면여러 PHP 페이지간에 배열 전달하기

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'; 
    } 

, 그들은 것 : 여기 배열 $ book_list, 전체 데이터베이스에서 책의 $의 book_list 저장소의 모든 ID에서 변수 $ previous_index & $ next_index를 생성하는 내 프로그램입니다 책의 모든 세부 사항을 보여주는 세부 페이지, 가격, 저자를 안내하는 또 다른 페이지로 안내 할 수 있습니다. 그리고 또한 사용자가 이동할 수 있도록 이전 및 다음의 두 개의 버튼을 설계했습니다. 메인리스트로 돌아 가지 않고도 다음 책.

// pass global array between pages 
$global_array = urlencode(serialize($book_list)); 
$link = 'book_detail.php?id=' . $current_id . '&array=' . $global_array ; 

세부 정보 페이지에 배열의 콘텐츠를 얻을 : 내가 방법을 직렬화 사용하여 상세 페이지에 배열 $ book_list을 통과하려고하지만

print_r(unserialize(urldecode(stripslashes($_GET['array'])))); 

를, 그것은 인 print_r에 아무것도 표시되지 않습니다 기능.

내 프로그램에 이상이 있습니까? 그리고 몇 가지 PHP 페이지간에 배열을 전달하지 않고도 내 요구 사항을 충족 할 수있는 대체 방법이 있습니까?

누군가 내게 힌트를 줄 수 있으면 고맙습니다.

+0

배열에는 보내기 전에 예상 한 내용이 포함되어 있습니까? echo 이렇게 확인하십시오 : echo $ book_list; var_dump ($ _ GET)를 사용하여 $ _GET 배열을 출력하여 다음 페이지로 일부 값이 전달되는지 확인하십시오. 그 내용을 볼 수 있습니다. 이것은 적어도 당신이 올바른 값을 가지고 있는지 확인합니다. 다른 방법으로 먼저 배열을 문자열로 imploding하고, 문자열을 보낸 다음 다시 explode하는 것입니다. – rncrtr

답변

0

$ _SESSION []을 (를) 사용하여 전달할 수 있습니까?

+0

thx Johnny, 나 해봅시다 – user2596392

+0

걱정 마세요, 작동 했습니까? – JohnnyFaldo

2

이렇게 ...

<?php 
session_start(); 

그런 다음이 당신이 부르는만큼 액세스 할 수 있습니다 다른 모든 페이지에 세션 변수

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

내부에 배열을 만들

session_start() 
페이지 상단에

+0

Thx Smith, $ SESSION을 사용하려고했는데 결과는 긍정적입니다. – user2596392

+0

환영합니다. 다행 이네요.이 페이지에서 체크 표시가있는 답을 잊지 마세요. –

0

모든 도서의 목록 인 경우 왜 사용자에게 전달하고 싶습니까? 목록에 특정 필터가 포함되어있는 경우 사용자가 선택한 필터를 세션에 저장하거나 필터를 링크에 추가하십시오. 어느 쪽이든 링크 모양을 book_detail.php?id=X과 같이 만들어야하고 사용자가 질문을하고 거기에서 다른 두 위치에 대한 링크를 만들 때 id가 X 인 책의 세부 정보를 선택하면됩니다 (db에 대한 간단한 쿼리는이 두 행과 그).

+0

한 페이지에 카탈로그를 만들고 다른 페이지에 책 세부 정보를 표시하고 싶습니다. 또한 카탈로그는 무작위 방법으로 데이터베이스에서 생성됩니다. 그래서, 나는 하나의 방법만을 알아낼 수 있습니다. 생성 된 책 ID 목록을 DB에서 배열로 저장합니다. – user2596392

+0

다음 세션에서 저장하십시오. –

0

감사합니다. $ SESSION을 사용하여 문제를 해결할 수 있습니다. 어쩌면 session_start(); 각 페이지 맨 위에.

관련 문제