2010-07-10 9 views
0

$ row [ 'max'] 주어진 값에 따라 데이터베이스에 x 번을 삽입해야하는 다음 코드가 있지만 1 개만 삽입됩니다. 누군가 내 길을 보여 주실 수 있습니까? 감사.PHP 카운터 루프가 작동하지 않습니다.

어쩌면
$query = "SELECT * FROM challenges WHERE rate='fixed'"; 
$query_result = mysql_query($query); 

while ($row = mysql_fetch_array($query_result)) { 
    $spawn_time = preg_split('/,/', $row['time']); 
    $spawn_time_results = count($spawn_time); 
    $limitno = $row['max']; 
    $spawn_counter = 0; 

    while ($spawn_counter <= $spawn_time_results) { 
     if ($spawn_time[$spawn_counter] == date("i")) { 
      $time = time(); 
      $insert_instance = "INSERT INTO instances (id,defeated,time) 
           VALUES ('{$row['id']}',0,{$time})"; 
      $insert_result = mysql_query($insert_instance); 
     } 
     $spawn_counter++; 
    } 
} 
+0

오류 메시지가 있습니까? '$ insert_result = mysql_query ($ insert_instance);를'$ insert_result = mysql_query ($ insert_instance) 또는 die (mysql_error());로 바꾸어보십시오. – svens

+0

데이터베이스는 어떻게 생겼습니까? 어쩌면 기둥이 유일 할 수도 있습니다. 인스턴스의 열 id가 문자열 또는 숫자입니까? – Codler

답변

1

당신은 실제로 limitno $를 사용하지 않습니다, 그래서 아무 효과가 없습니다해야

PS : 대신 preg_split의 폭발이 대신 사용하시기 바랍니다 while 루프.

+0

이 (가) 제안 된대로 변경되었습니다. 잠깐 나를 사용 해본 적도 없지만 읽은 후 꽤 간단했다. 이제 조정해야하는대로 작동합니다. 감사 – anadin

0

는 ...

$insert_instance="INSERT INTO instances (id,defeated,time) 
VALUES ({$row['id']},0,{$time})"; 
+0

dont는 실제 레코드에 아무런 문제가 없다고 생각합니다. 1 레코드가 올바르게 입력되었으므로 루프가되지 않습니다. 예를 들어, $ limitno의 값이 8이면 루프 삽입 라운드를 8 번 반복해야하지만 하나만 수행합니다. – anadin

+0

나는 당신이 Codler를 제안했지만 기쁨이 없으므로 삽입물을 변경하려고 시도했다. 감사. – anadin