2012-02-03 7 views
1

쿼리 결과를 테이블에 쓰는 for 루프가 있습니다. 쿼리의 값에서 할당되는 변수 ($rID_s)가 있습니다. 어떤 이유로 첫 번째 반복을 생략합니다. 쿼리의 전체 행에 대한 변수가 있고 올바른 번호를 할당하고 있습니다. 나는 $i = 0$i = 1으로 설정을 시도했지만 배열의 첫 번째 반복은 생략했다. $i0으로 설정된 경우 null 레코드가 테이블에 추가됩니다.PHP for 루프 변수가 할당되지 않았습니다.

$ rID_s의 값은 루프의 첫 번째 반복에서 할당되지 않은 변수입니다. 미리 감사드립니다 :

for ($i=1; $i <= $totalRows_rsClassReg; $i++) { 

     $row = mysql_fetch_array($rsClassReg); 
     $rID_s = $row['class_registry_student_ID_fk']; 

     mysql_select_db($database_SCOPE_test, $SCOPE_test); 
     $sql_aInstance = sprintf("INSERT INTO assignment_registry (assignment_reg_assignment_ID_fk, assignment_reg_student_ID_fk) VALUES (%s, %s)", 
        GetSQLValueString($aID, "int"), 
        GetSQLValueString($rID_s, "int")); 
     $Insert_aInstance = mysql_query($sql_aInstance, $SCOPE_test) or die(mysql_error()); 
     echo $row['class_registry_student_ID_fk'] . " - "; 
     echo "Instanced"; 
     echo "</br>"; 
    } 
+0

에코를 할 때 $ i를 출력 할 수 있습니까? –

+0

두 데이터베이스 연결에 동일한 사용자 이름/암호 조합을 사용하고 있습니까? – Crontab

답변

1

당신은 당신의 질문에 대답 할 수있는 충분한 정보를 제공하지 않았다, 그래서 나는 당신을 완전히 왼쪽 필드에 갈거야하고 귀하의 질문에 쓸모해야이 일을 다른 방법을 제공합니다.

여기서 할 수있는 일과해야 할 일이 많이 있습니다. 데이터베이스에 대한 쿼리가 버스이고 각 쿼리가 버스 트립이라고 가정 해보십시오. 버스를 더 많은 데이터로 채운 다음 여러 번 버스를 타는 것이 좋습니다.

// do this up here 
mysql_select_db($database_SCOPE_test, $SCOPE_test); 

if(! empty($oneDimensionalArrayOfIds)){ 
    $query = " SELECT `col` FROM `table` WHERE (". implode('AND', $oneDimensionalArrayOfIds) .") "; // the 1-D array is getting your r_IDs or whatever 
    $rsClassReg = sqlarr($query); 
    if(! empty($rsClassReg)){ 
     $sqlInserts = NULL; 
     foreach($rsClassReg as $r){ 
      $sqlInserts[] = sprintf("INSERT INTO assignment_registry (assignment_reg_assignment_ID_fk, assignment_reg_student_ID_fk) VALUES (%s, %s)", GetSQLValueString($aID, "int"), GetSQLValueString($rID_s, "int")); 
      // not sure where you are getting AIDs from (africa? har har)... 
     } 
     if(! empty($sqlInserts)){ 
      sqlquery(implode("; ", $sqlInserts)); 
     } 
    } 
} 

오래 전,이 기능을 사용 했었습니다. 이제는 며칠 씩 사용자 지정 쿼리 작성기와 PDO를 사용하여 많은 작업을 저장합니다. 여기에 ...

function sqlarr($sql, $numass=MYSQL_BOTH) { 
    // MYSQL_NUM MYSQL_ASSOC MYSQL_BOTH 
    $got = array(); 
    $result=mysql_query($sql) or die("$sql: " . mysql_error());        

    if(mysql_num_rows($result) == 0) 
     return $got; 
    mysql_data_seek($result, 0); 
    while ($row = mysql_fetch_array($result, $numass)) { 
     array_push($got, $row); 
    } 
    return $got; 
} 

// Sql fetch assoc 
function sqlassoc($sql){ 
    $query = mysql_query($sql) or die("$sql:". mysql_error()); 
    $row = mysql_fetch_assoc($query); 
    return $row; 
} 

function sqlrow($sql){ 
    $query = mysql_query($sql) or die("$sql:". mysql_error()); 
    $row = mysql_fetch_row($query); 
    return $row; 
} 

function sqlquery($sql){ 
    $query = mysql_query($sql) or die("$sql:". mysql_error()); 
    return $row; 
} 
+0

SO에 오신 것을 환영합니다. @phpmeh를 말하고 여기에 의견을 말하면이게 효과가 있는지 알려주세요. 또한 그것이 효과가 있거나 도움이된다면, 답변에 투표를하고 체크 표시와 함께 수락하십시오. – phpmeh

+0

이것은 확실히 나를 도와 줬다. 나는 이것에 일종의 초보자이고 쿼리의 이러한 유형을 처리하는 훨씬 더 좋은 방법이 있다는 것을 깨닫지 못했습니다. 도와 주셔서 감사합니다! – user1188339

+0

표결에 동의하십시오. 우리는 여기에 평판이 좋은 창녀가 – phpmeh

관련 문제