2013-11-23 2 views
0

나는 내가 구식 방법을 사용하고 있는데 PDO를 배워야한다 알고 시작하기 전에 ...1 개의 var 작품, 1 않습니다. 왜?

<?php 
    $f = mysql_query("SELECT featured, date_featured FROM pins WHERE id='$pinDetails->id'") or die(mysql_error()); 

    while($g = mysql_fetch_array($f)) 
     $feature = $g['featured']; 

    $on = $g['date_featured']; 
?> 

을하지만 에코 ...

<?php echo $feature; ?> 작동하지만 <?php echo $on; ?>하지 않습니다.

코드에 어떤 문제가 있습니까? 이 루프가 완료 될 때까지 $on을 설정하려고하지 그래서

while ($g = mysql_fetch_array($f)) { 
    $feature = $g['featured']; 
} 
$on = $g['date_featured']; 

: 당신의 코드에 해당하므로

+0

아무런 의미가 있지 않습니까? – vijaykumar

+0

그렇다면'date_featured'의 결과에는 어떤 값이 있습니까? –

+0

시도하십시오 print_r ($ g); – vijaykumar

답변

4

당신은 당신의 while 루프의 몸 주위에 괄호를 넣어하지 않았다. mysql_fetch_array()false을 반환하면 $g에 할당되면 완료됩니다. 그래서 당신은 일을하는지 :

$on = false['date_featured']; 

은 분명히 하나 개의 행을 얻고 있기 때문에, 당신은 while 루프가 필요하지 않습니다. 그냥 다음과 같이 작성하십시오 :

왜 필요하지 않을 때 루프를 작성 했습니까? 나는 항상이 을보고 있는데,에 관한 것이고, 나는 그것을 이해하지 못한다. 다른 프로그램에서 코드를 복사 할 수 있습니까? 실제로 작성된 이유를 실제로 이해하지 못합니다.

그리고

몸에 하나의 문이의 경우에도 if의 몸, while, foreach 등 문 주위 항상 퍼팅 교정기의 습관을. 그렇게하면 두 번째 문장을 추가 할 때 주위에 괄호를 추가하는 것을 잊어 버릴 위험을 감수하지 않을 것입니다.

또한 편집기를 사용하여 코드를 들여 쓰기하여 구조를 미러링합니다. 그런 다음 두 번째 명령문이 루프에 없다는 것을 알 수 있습니다.

+0

설명해 주셔서 감사합니다. 나는 중괄호에 대해 몰랐고, 어디에서 코드가 작동하고 어디에서 코드를 변경했는지를 변수로 변경했습니다. 심지어 db에서 얻으려고했던 것을 고려하지 않았습니다. –

관련 문제