2016-08-09 9 views
1

Ich möchte mehrere Zeilen mit for-Schleife in eine Tabelle einfügen, aber einige Fehler haben. Was ist falsch in diesem Code?Mehrere Zeilen mit for-Schleife einfügen

$sql=mysql_query("INSERT INTO pl_tbl (p_id,po_name,po_val) VALUES 

      for ($i=0;$i<$count;$i++) 
      { 
       ('$id','$data['data']['name_'.$i]','$data['data']['val_'.$i]')"); 
      } 

Antwort

3

Codeigniter aktiven Datensatz hat eine Funktion insert_batch ich das denke, was Sie brauchen:

$data = array(
array(
    'p_id' => 'My id' , 
    'po_name' => 'My Name' , 
    'po_val' => 'My val' 
), 
array(
    'title' => 'Another title' , 
    'name' => 'Another Name' , 
    'date' => 'Another date' 
) 
); 

$this->db->insert_batch('pl_tbl', $data); 

Andere Art und Weise:

for ($i=0;$i<$count;$i++) 
    { 
    $data = array(
     array(
     'p_id' => $id , 
     'po_name' => $data['data']['name_'.$i] , 
     'po_val' => $data['data']['val_'.$i] 
    ); 
    $this->db->insert('pl_tbl', $data); 
    } 
+0

ich habe wie diese INSERT INTO 'pl_tbl'() VALUES(),(),() – robins

+0

verwenden Sie bitte insert_batch Funktionsformular CI – kuldeep

3

Versuchen Sie es:

$sql = "INSERT INTO pl_tbl (p_id,po_name,po_val) VALUES"; 
$values = []; 

for ($i=0;$i<$count;$i++) 
{ 
    $values[] = "('$id','$data['data']['name_$i]','$data['data']['val_$i]')"; 
} 

$sql .= join(',', $values); 
$result = mysql_query($sql); 
+0

Fehler funktionieren sollte = []; – robins

+0

versuchen Sie dann '$ values ​​= array();' – rokas

+0

Bewirkt dies nicht, dass er alle seine Daten in einer Zeile statt in mehreren Zeilen speichert? – RPaul

0

try Speichern der gesamten Abfrage in einer Variablen und dann run mit der mysql_query sollte dir helfen.

so wird Code

$sql_query="INSERT INTO pl_tbl (p_id,po_name,po_val) VALUES "; 

    for ($i=0;$i<$count;$i++) 
    { 
     $sql_query.="('$id','".$data["data"]["name_".$i]."','".$data["data"]["val_".$i]."') "; 
    } 
$sql=mysql_query($sql_query); 
0

sein Wenn ich das richtig verstanden habe, sollten Sie diese

for ($i=0;$i<$count;$i++) { 
    $sql=mysql_query("INSERT INTO pl_tbl (p_id,po_name,po_val) VALUES ('$id','".$data['data']['name_'.$i]."','".$data['data']['val_'.$i]."')"); 
} 
1
$data=array(); 
for ($i=0;$i<$count;$i++) 
{ 
    $temp=array(); 
    $temp['p_id'] = 'My id'; //actual value 
    $temp['po_name'] = 'My Name'; //actual value 
    $temp['po_val'] = 'My val'; //actual value 
    array_push($data,$temp); 
} 
$this->db->insert_batch('pl_tbl', $data); 

Sie können mit diesem Code versuchen tun.

+0

ich versuchte es..Nicht funktioniert – robins

+0

i habe meinen Code aktualisiert. Bitte versuche es erneut. Ich hoffe, es wird funktionieren. –

0

diesen einfachen Code versuchen, seine für Sie in $ values ​​..

<?php 
    for($i=0;$i<$count;$i++) 
    { 
    $sql="INSERT INTO pl_tbl (p_id,po_name,po_val) VALUES ('$id','$data['data']['name_'.$i]','$data['data']['val_'.$i]')"; 
    $result = mysql_query($sql); 
    } 
?> 

dank

Verwandte Themen