2010-06-29 3 views
0

필자는 오래 전에 PHP 서버 &을 테스트하기 위해 내 서버를 사용했습니다.MySQL은 쿼리 결과에서 {첫 번째 행} 만 반환합니다!

갑자기 모든 데이터베이스에서 임의의 테이블에 대한 쿼리를 실행하려고하면 쿼리 결과의 첫 번째 행만 가져옵니다!

구성 파일을 검사 한 결과 이상한 점을 발견하지 못했습니다.

OS : 리눅스/우분투 10.04 64 비트 서버 에디션, 웹 서버 : 아파치/2.2.14, MySQL의 클라이언트 : 5.1.41, MySQL 서버 : 5.1.41-3ubuntu12.3 (우분투)

그리고 내 PHP 코드에 오류가 없습니다. phpMyAdmin을 사용하면 정상적으로 모든 행을 얻습니다..

어디에 문제가 있습니까?

+7

어쨌든 우리에게 코드를 보여주고 싶습니까? 혹시? –

+0

+1, 코드하시기 바랍니다. mysql_num_rows()는 무엇을 반환합니까? – user375700

+4

>> 그리고 phpMyAdmin을 사용할 때 정상적으로 모든 행을 가져 오는 동안 내 PHP 코드에 오류가 없음을 확신합니다. 이 라인이 마음에 듭니다. – iBiryukov

답변

7

코드를 게시하면 도움이되지만 코드에 각 행을 반원으로 가져 오는 루프가 없다고 생각합니다.

<?php 

$Result = mysql_query($Query); 

while($Row = mysql_fetch_assoc($Result)) //keep going while there are more rows 
{ 
    print_r($Row); 
} 

mysql_fetch_accoc과로 MYSQL_ASSOC 함수는 (연속) 한 번에 하나 개의 행을 리턴 그래서 당신은 각 행에 대해이를 실행해야합니다.

+1

+1 비슷한 답변을 입력했습니다. 이것은 코드를 보지 않고 내 첫 번째 추측이 될 것입니다. –

+0

.. 가져 오기가 모든 행을 반환했을 때 while 루프가 완료됩니까? 내 말은 ... mysql_num_rows ($ result)가 4를 반환하면 while 루프가 4 번 또는 무한 시간 실행됩니까? – Hristo

+0

더 이상 행이 없을 때 mysql_fetch_accoc은 FALSE를 반환합니다. 따라서 루프는 4 행 (이 경우)을 읽고 종료 할 때까지 계속 진행됩니다. http://php.net/manual/en/function.mysql-fetch-assoc.php – Kewley

6

문제 은 코드와 함께입니다. 방금 phpMyAdmin이 MySql에서 정상적으로 돌아 왔다는 것을 알려주었습니다. MySql 서버가 문제가 아니며 PHP 서버 설정의 일부도 아닙니다.

코드가 잘못 되었기 때문에, mysql_fetch 함수의 작동 방식을 알지 못하기 때문에 코드에 staement의 한계 1을 초과하거나 행을 잘못 잡아 먹었을 가능성이 있습니다.

Downvote 왜냐하면 나는 snarky 얼간이이기 때문에.

관련 문제