2013-04-19 5 views
-1

간단한 문제가 발생했습니다. 나는 그것을 봤고 너무 많은 자원을 찾았지만 아무것도 내 관점에서 유용하지 않습니다.While 루프가 첫 번째 행을 표시하지 않습니다.

여기 쿼리를 실행하여 선택 메뉴로 출력했습니다. 그러나 값의 첫 번째 행이 표시되지 않습니다.

<?php 
$query = mysql_query("SELECT * FROM `subcategory` ORDER BY `Category_id`");    
while($row = mysql_fetch_array($query)){ 
$subcategory_title = $row['Subcategory_name']; 
$subcategory_id = $row['Subcategory_id']; 
$subcategory_id = $subcategory_id*10; 

$selectMenu .= "<option value='$subcategory_id'>$subcategory_title</option>"; 
} 
?> 

출력은 그렇지 목록 메뉴의 여부까지 여기 $subcategory_title$subcategory_id, 첫 번째 행의 값 쇼를 에코 나는 오전

<select name='' class=''> 
<option disabled='disabled'>Choose a Topic</option> 
<?php echo $selectMenu; ?> 
</select> 

입니다. 다른 스크립트의 같은 코드가 정상적으로 작동합니다. 나는 이해하지 못한다. 문제가 무엇입니까?

+0

당신은 MySQL의 만 SQL을 실행할 때 모든 값을 받으셨어요? – sel

+1

[mysql_ *'functions] (http://stackoverflow.com/q/12859942/1190388)을 새 코드로 사용하지 마십시오. 더 이상 유지 관리되지 않으며 [공식적으로 권장되지 않습니다] (https://wiki.php.net/rfc/mysql_deprecation). 빨간 상자 보이니? 대신 준비된 문에 대해 알아보고 [tag : PDO] 또는 [tag : MySQLi]를 사용하십시오. – hjpotter92

+0

나는 그 이유를 확실히 말할 수는 없지만, 그래야한다고 생각한다. $ subcategory_id = $ subcategory_id * 10; 루프의 끝에 – apoq

답변

0

코드 링크 : http://pastebin.com/iGqitNe7

이 시도 ...

<?php 

$qidInfo = "<tr> 
       <td width='20%'>Exam Topic:</td> 
       <td width='80%'><label> 
       <select class='exam_name' name='exam_name' id='exam_name'> 
       <option disabled='disabled'>Choose a Topic</option>".$selectMenu." 
      </select>...rest of the string..."; 
?> 
+0

아니요 ... 이미 코드 상단에 $ selectMenu를 초기화하고 있습니다. 여기 내 코드의 일부만 보여주고있다. – Nabil

+0

전체 코드를 게시 할 수 있습니까? –

+0

여기를 확인하십시오 http://pastebin.com/iGqitNe7 @Jay – Nabil

0

왜 그렇게처럼 PDO로에게 RIGHT 방법을하지? :

$sql = "SELECT * FROM `subcategory` ORDER BY `Category_id`"; 
$query = $pdo->prepare($sql); 
$query->execute(); 

if($query) { 
    $row = $query->fetchAll(PDO::FETCH_ASSOC); 
    $selectmenu = ""; 
    foreach ($row as $value) { 
     $selectMenu .= "<option value=<?php echo $value['subcategory_id']*10 ?>><?php echo $value['subcategory_title'] ?></option>"; 

    } 
} 

(BTW 검증되지 않은 일부 구문 오류가있을 수 있습니다)이 테스트되지 않은 코드는하지만 난이 일을한다고 생각합니다. 행운을 빕니다 당신이 btw있을 수도 우려를 게시 할 수 있습니다.

PDO 설정에 대한 도움은 this answer.을 참조하십시오. 왜 PDO를 사용해야하는지 묻습니다. 글쎄, 위의 주석에 명시된 바와 같이 Mysql_ 함수는 PHP 커뮤니티에서 내려다 보았고 PHP 5.5에서 제거 될 것이므로 새로운 코드에 대한 모든 비용을 피해야합니다.

는 PHP PDO에 더 읽기 here

+0

'$ query-> fetch (PDO :: FETCH_ASSOC)'는'$ query-> fetchAll (PDO :: FETCH_ASSOC)'이어야합니다. – hjpotter92

+0

기여에 대한 답변 감사합니다. –

관련 문제