2016-10-29 5 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に366以下の固定i値があり、for文でループを実行しており、iの値がi++に変更されていません。このコードは動作するようになりまし

EDIT CHANGES

...私は今、固定されており、これが完全にうまく実行されている余分な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