2011-10-22 4 views
2

나는 프로젝트에서 일하고 있는데, 나는이 문제를 고집하고있다. 나는 $ category라는 변수를 가지고 있는데, null이거나 공백이 1로 설정된다. $ category ++를 양식을 제출 한 후 2가된다. 네,하지만 세 번째 제출시에는 3이되지 않습니다. 어떻게되는지 확인한 결과 실제로 제출할 때마다 $ 카테고리가 1이된다는 것을 알았습니다. 첫 번째 코드 줄이 null이거나 비어 있으면 1. 내가 말하는 것에 대해 코드를 보여 드리겠습니다. 도와 주셔서 미리 감사드립니다. :) 내가 때마다 페이지가로드 범주를 에코 경우양식 제출 후 변수 재설정을 중지하는 방법?

session_start(); 

include_once('db.php'); 

$cat_SQL = 'SELECT * FROM categories ORDER BY id'; 
$cat_RESULT = mysql_query($cat_SQL, $conn); 
$cat_ROWS = mysql_fetch_assoc($cat_RESULT); 
$cat_ROWS_number = mysql_num_rows($cat_RESULT); 

if (is_null($category) || empty($category)) { 
    $category = 1; 
} 

if (isset($category)) { 
    if ($category < $cat_ROWS_number) { 
     $category = $category + 1; echo $category; 
    } 
} 

그래서,이 같은 것을 가지고 페이지를 입력

처음 : 그것은 1 => $ 카테고리가되도록 카테고리 = 비어 1 첫 번째 SUBMIT $ category = $ category + 1 => $ category = 2 이후 두 번째 SUBMIT $ category = $ category + 1 => $ category = 2 (여전히 3이 아닌 2) 등등 ... : 페이지가 다시로드/제출 될 때마다 $ category를 (를) 중지하고 대신 새 값이됩니다 (세션 당)

17,451,515,그래서 나는 결국)

if (!isset($_SESSION['category'])) { 
    $_SESSION['category'] = 1; 
    $category = $_SESSION['category']; 
} 
else { 
     if($_SESSION['category'] < $cat_ROWS_number) { 
      $_SESSION['category']++; 
      $category = $_SESSION['category']; 
     } 
} 

그러나, 귀하의 빠른 답변에 대한 여러분 모두 감사합니다 (I 대답 자신을 :) 발견 자랑하지,하지만 행복) 답을보기 전에 그것을 할 관리! ! :)

답변

2

이렇게하는 한 가지 방법은 $ category를 세션 변수에 넣는 것입니다. session_start 후하지만 전에 if (is_null($category) || empty($category)) 당신이 넣어 :

if(isset($_SESSION['category'])) 
    $category = $_SESSION['category']; 

그리고 그 후 $category = $category + 1; 당신이 넣어 :

$_SESSION['category'] = $category; 

그 트릭을 할해야한다.

+0

감사합니다. :) 그게 바로 제가 결국 사용했던 것과 당신의 회신을 보았을 때 제가 세션에서 가장 좋은 것을 알았습니다. 아무튼 감사 해요! ;) – Robert

+0

문제 없음 :) 도움이되지 않습니다. 세션은 이런 종류의 일에 완벽합니다. 솔루션으로 내 대답을 표시해 주셔서 감사합니다! – toon81

0

또는 현재 범주 개수를 입력하는 양식에 숨겨진 필드를 추가하십시오.

+0

"그들은"내가 숨겨진 들판없이 그것을하기를 원했습니다. 왜냐하면 그건 내가 처음 사용했던 것이기 때문이다.) – Robert

+1

하지만 세션 솔루션으로 "그들"에게 말해야한다. 당신이 페이지로 돌아 왔을 때 당신은 마지막 방문 때문에 카테고리 123으로 시작할 것이다 :-)) – Marc

+1

세션 기본적으로 약 30 분 후에 만료됩니다. 숨겨진 입력 "솔루션"은 화면 전환시 사이트가 현재 카테고리를 잊어 버리는 단점이 있습니다. – toon81