2016-10-29 4 views
-5

이 코드를 사용하여 MySQL에 데이터를 추가합니다.
PHP 루핑 오류

$arr = array("Dr APJ Abdul Kalam", "Benjamin Franklin", "Albert Einstein", "Mahatma Gandhi", "Abraham Lincoln", "Gen. Patton", "Stephen Hawking", "Mark Twain", "George Washington"); 
foreach ($arr as &$value) { 
$sql="UPDATE ci_thought SET text='".$value."'"; 
If ($this->db->query($sql) === TRUE) { 
    echo "added ".$value; 
} else{ 
    echo "ERROR"; 
} 
} 

무엇을 행 텍스트를 업데이트하고있다하지만 모든 값이 조지 워싱턴입니다.
나는 366 개의 행을 가지고 있으며 루프에 9을 추가하여 9 개의 다른 항목마다 366 개의 값이 삽입 될 때까지이 코드가 다시 실행되도록합니다.

+0

실제로? –

+0

내가 이전 366 행의 데이터를 삭제하고 새로운 데이터를 삽입 할하지만 루프 MySQL의
에 삽입하는 방법을 잘 모릅니다 무엇을 하시겠습니까? –

+1

[PHP - 제어 구조] (http://php.net/manual/en/language.control-structures.php), [foreach] (http://php.net/manual/en/control -structures.foreach.php)와 [Arrays] (http://php.net/manual/en/language.types.array.php) 또한 많은 튜토리얼이 있거나 PHP 웹 사이트를 배울 수 있습니다. 적어도 시작하십시오. 스크립트 시작 부분에 구체적인 질문이 있습니다. –

답변

1

올바른 코드를 만드는 것을 도와주세요 나는 다음 코드

$arr = array( "Dr APJ Abdul Kalam", 
        "Benjamin Franklin", 
        "Albert Einstein", 
        "Mahatma Gandhi", 
        "Abraham Lincoln", 
        "Gen. Patton", 
        "Stephen Hawking", 
        "Mark Twain", 
        "George Washington" 
    ); 
for($i= 1; $i <=366;) { 
foreach ($arr as &$value){ 

$sql="UPDATE ci_thought SET text='".$value."' WHERE id=".$i; 
If ($this->db->query($sql) === TRUE) { 
    echo $i.". added ".$value."<br>"; 
} else{ 
    echo "ERROR"; 
} 
$i++; 
} 

} 내가 무슨 짓을 내가 루프 추가를 사용하여 문제를 해결했다.
$i=1;을 할당하고 $i <= 366에서 i 값을 366 이하로 고정했으며 for 문으로 루프를 수행하고 i++만큼 값을 증가시키지 않았습니다. 다른 변경 사항이 없습니다.

편집은 지금은 고정되어 추가 i++을 넣고 있었어요이 완벽하게 잘 실행되고 ...이 코드는 지금 작동

변경합니다. 맞춤법, 문법 실수에 대한 중복 게시물 :(죄송

-2
<?php 

     $arr = array( "Dr APJ Abdul Kalam", 
         "Benjamin Franklin", 
         "Albert Einstein", 
         "Mahatma Gandhi", 
         "Abraham Lincoln", 
         "Gen. Patton", 
         "Stephen Hawking", 
         "Mark Twain", 
         "George Washington" 
     ); 
     // IF YOU WANT TO UPDATE THE text COLUMN OF ALL RECORDS 
     // YOU MAY FIRST NEED TO GET THEIR ID 
     $idSQL = 'SELECT id FROM ci_thought'; 
     $ids = $this->db->query($sql); 
     $key = 0; 
     var_dump($ids); 
     exit; 

     // ASSUMING $ids IS AN ARRAY OF OBJECTS WITH id KEY, 
     // YOU CAN USE THE IDS FOR THE UPDATED 
     foreach ($ids as $index=>$data) {    
      if($index%9 == 0){ 
       $key = 0;      
      } 
      $id  = $data->id; 
      $sql = "UPDATE ci_thought SET text='". $arr[$key] ."' WHERE id='{$id}'"; 
      if ($this->db->query($sql) === TRUE) { 
       echo "added ".$value; 
      } else{ 
       echo "ERROR"; 
      } 
      $key++; 
     } 
+0

답장 부탁드립니다.이 코드는 오류가 발생했습니다. 내 코드를 만들었습니다. 일부 수정 프로그램은 위에 게시했지만 10, 20, 30, 40 ..... 값을 건너 뜁니다. 도움이 필요합니다. –

+0

코드 만 게시하면 안됩니다. 당신이 무엇을 바꿨는지 그리고 이유를 설명하십시오 – Jens

+0

@AnhatSingh'var_dump ($ ids)'를 시도하십시오 .... 당신은 무엇을 얻습니까? – Poiz