2012-09-12 3 views
0

4 년 동안의 (2012, 2013, 2014, 2015) 달력 표가있는 데이터베이스 (각 행은 하루를 나타냄)가 있습니다. 저는 칼럼 이름 calyear를 사용합니다.mysql_fetch_array()가 모든 결과를 표시하지 않습니다.

나는 그것을 표시 한 후 별개 년에 대한 값을 찾으려면 다음 코드를 사용

$year = mysql_query("SELECT DISTINCT calyear FROM calendar"); 

while($yeararray = mysql_fetch_array($year)) 
{ 
echo($yeararray['calyear']."<br />"); 
} 

문제는 단지 몇 년을 표시 2013, 2014, 2015 심지어 내가

echo(mysql_num_rows($year); 
를 사용할 때 생각

4 년 모두를 의미하는 값 4가 표시됩니다. 나는 이것이 어디서 잘못 될지는 모르겠다.

*수정 제안에 대한*

감사하지만 나는 문제를 발견하고 내 자신의 어리 석음이었다.

페이지 상단과 나중에 (필자가 필요로하는) ​​While 루프에서 $year 쿼리가 발생했습니다. 이전에 $yeararray = mysql_fetch_array($year)$year 밑에 넣었으므로 페이지에 두 번 넣었습니다. 상단의 중복 된 코드를 제거하면 코드가 정상적으로 작동했습니다.

감사합니다. 죄송합니다.

+1

어쩌면 데이터베이스가 네 번째 행에 'null'을 더한 3 년을 반환하고 있습니까? 당신의 묘사를 생각해 볼 수있는 유일한 방법입니다. – Nelson

+0

var_dump를 사용하여 변수의 내용을 확인하십시오 ... – mahen3d

답변

1

어쩌면 4 번째 값이 null이거나 공백 일 수 있으며 반향 할 때 단순히 보이지 않는 경우가 있습니다.

desc calendar을 수행하고 열 평년에 대해 어떤 기본값이 설정되어 있는지 확인하십시오.

그런 다음 select count(*) from calendar where calyear is null 또는 select count(*) from calendar where calyear = <whatever the default you've set>을 입력하여 비어 있거나 null 값이 선택되어 있는지 확인하십시오.

+0

하지만 While 루프를 제거하고 echo ($ yeararray [ 'calyear'])를 사용하면 2012 만 표시됩니다. 2012를 While에 넣으면 어딘가에서 잃어 버리게됩니다 고리 – user1666995

관련 문제