··조회 12,723
mysql_fetch_array함수와 while구문을 쓸 때 검색결과 하나가 누락됩니다.
아래와 같은 방법으로 db 검색결과를 전부 출력하도록 했는데..
결과값에서 검색조건에 맞는 값중 가장 작은 값이 빠지고 나머지
값만 출력됩니다. 왜 그런거죠?
<?
mysql_connect("localhost", "dbuser", "pass") or die (mysql_error());
mysql_select_db("testdb");
echo $kind;
$tablename='point';
$sql = "select * from point order by num limit 0, 50 ";
$result = mysql_query($sql) or die (mysql_error().$tts);
?>
<table><tr>
<?
$i=1;
while ($array = mysql_fetch_array($result)){
echo "<td>$i</td>
<td align='center' valign='center' width='150'>$array[name]</td>
<td align='center' valign='center' width='220'>$array[id]</td>
<td align='center' valign='center' width='80'>$array[email]</td>
<td align='center' valign='center' width='150'>$array[address] km</td></tr>";
$i=$i+1;
}
?>
</table>
혼자서 계속 이유를 찾아보다가 실패하고, 질문올립니다..
결과값에서 검색조건에 맞는 값중 가장 작은 값이 빠지고 나머지
값만 출력됩니다. 왜 그런거죠?
<?
mysql_connect("localhost", "dbuser", "pass") or die (mysql_error());
mysql_select_db("testdb");
echo $kind;
$tablename='point';
$sql = "select * from point order by num limit 0, 50 ";
$result = mysql_query($sql) or die (mysql_error().$tts);
?>
<table><tr>
<?
$i=1;
while ($array = mysql_fetch_array($result)){
echo "<td>$i</td>
<td align='center' valign='center' width='150'>$array[name]</td>
<td align='center' valign='center' width='220'>$array[id]</td>
<td align='center' valign='center' width='80'>$array[email]</td>
<td align='center' valign='center' width='150'>$array[address] km</td></tr>";
$i=$i+1;
}
?>
</table>
혼자서 계속 이유를 찾아보다가 실패하고, 질문올립니다..
댓글 2
쿼리문은 아무 이상이 없는 것 같은데요.
num을 기준으로 오름차순으로 정렬하여 50개까지 보여주는 정상적인 문장입니다.
그런데, 본질적인 것은 아니지만, 테이블을 구성하는 태그가 좀 이상한 것 같네요.
while 문 이전에 <tr> 태그가 있는데, while 안에서 </tr>로 닫아 버렸네요. 아무래도 모양이 이상할 것 같은데...
위 소스에는 문제가 없고..
제가 사용했던 소스에서 while의 조건으로 사용될
변수와 동일한 변수를 위에서 한번 더 정의 했더군요..
그래서.. 그런현상이 생겼더군요.. 엉뚱한 질문하고..
혼자 답하고 해서 죄송합니다..