어떤 이유로 데이터베이스에서 데이터를 가져 오는 데 문제가 있습니다. 목록에있는 첫 번째 항목에서 출발합니다.데이터베이스에서 데이터베이스를 가져올 때 MySQL이 첫 행을 버리는 이유는 무엇입니까?
연결 :
mysql_select_db($database_my_db, $my_db);
$query_rs_jobboards11 = "SELECT * FROM jobBoardsSpecTypes ORDER BY type";
$rs_jobboards11 = mysql_query($query_rs_jobboards11, $my_db) or die(mysql_error());
$row_rs_jobboards11 = mysql_fetch_assoc($rs_jobboards11);
$totalRows_rs_jobboards11 = mysql_num_rows($rs_jobboards11);
출력 :
<form action="" method="get">
<select name="specialty">
<?php do { ?>
<option value="<?php echo $row_rs_cms11['type']; ?>"><?php echo $row_rs_cms11['type']; ?></option>
<?php } while ($row_rs_cms11 = mysql_fetch_assoc($rs_jobboards11)); ?>
</select>
<input type="submit" value="Go" />
</form>
그것은 유형 열에서 첫 번째 항목을 떠나 유지합니다. 항목을 더 추가하면 이전에 제외 된 항목이 표시되고 새 항목이 숨겨집니다.
내가 뭘 잘못하고 있니? 데이터베이스는이 페이지 이외의 모든 것에 대해 완벽하게 작동합니다.
흠 ... 이것은 단지 문제 중 하나 일뿐입니다. $ row_rs_cms11이 조건에 할당 되었기 때문에 while 대신 while은 실제로 차이를 만듭니다. while - while 변수는 루프의 첫 번째 실행에서 어떤 값도 가지지 않습니다 ... – hjhill
$ row_rs_jobboards11은 루프에서 사용되는 $ rs_jobboards11 대신 변수가 인스턴스화 된 방법 이었기 때문에입니다 (추가 $ row_). do/while은 적절한 변수를 사용하고 있는지 확인하면 완벽하게 작동합니다. – davethegr8
while 루프 대신 do/while의 명백한 장점은 없지만 여기에 있습니다. 예를 들어, 결과 세트가 비어있는 경우 다른 조치가 수행됩니다. 하지만 mysql_num_rows()를 호출하거나 fetch_assoc() 코드를 중복하는 것은 불필요한 일이다. – VolkerK