2010-07-24 13 views
0
$r = mysql_query ("SELECT guid FROM characters"); 
if (mysql_num_rows($r) != 0) { 
    while ($row == mysql_fetch_array ($r)) { 
     $cap = rand (0, $char); 
     if ($row ['guid'] != $cap) { 
      $captain = rand (0, $char); 
     } 
    } 
} else { 
    $captain = rand (0, $char); 
} 

이 코드는 문자 테이블에 아직 기록되지 않은 문자의 GUID를 반환합니다. if가 작동하지만 루프가 전혀 작동하지 않는 첫 번째 부분에서는 print "text"를 추가하려고했습니다. 그러나 아무것도 돌려주지 않았습니다.While 루프가 작동하지 않습니다.

답변

6

시도 : while= (평등) 대신

당신은 mysql_fetch_array의 결과와 동일 $row을 설정할
while ($row = mysql_fetch_array ($r)) 

결과에 대해 비교하지

2

당신은 == (비교)를 사용하는 고리.

3

while 루프에서 ==를 사용하고 있습니다. = (대입 연산자)를 사용해야합니다. 또한 메모 만하면 mysql_fetch_array 대신 mysql_fetch_assoc을 사용해야합니다. mysql_fetch_array는 info (데이터의 숫자 및 연관 버전 모두)의 2 배를 반환합니다.

관련 문제