2017-01-20 3 views
0

FormularLeere Strings während der Eingabe von Daten in MySQL-Tabelle PHP foreach() Schleife

<input type="text" name="a[]"> 
<input type="text" name="b[]"> 
<input type="text" name="c[]"> 

process_form.php

$a = $_POST['a']; 
$id = 12; 
$query = "INSERT INTO table(id,a,b,c) VALUES "; 
foreach($a as $i => $n) { 
    $b = $_POST['b'][$i]; 
    $c = $_POST['c'][$i]; 
    $query = $query."('$id','$n', '$b', '$c') ,"; 
} 
$query = substr($query, 0, -1); 
echo $query; 

Ausgabe

INSERT INTO table(id,a,b,c) VALUES('12','a','b','c') , ('12','','','') ,('12','','','') ,('12','','','') ,('12','','','') ,('12','','','') ,('12','','','') ,('12','','','') ,('12','','','') ,('12','','','') 

erforderliche Ausgabe

INSERT INTO table(id,a,b,c) VALUES('12','a','b','c') 

Ich weiß nicht wieso $ i iteriert 10 mal und ich bekomme leere Saiten.

+0

Warum verwenden Sie 'name = "a []"' für ein Textfeld ? Haben Sie andere Elemente in der Form, die denselben Namen haben? – Moe

+0

Sie müssen uns mit mehr Informationen versorgen. Geben Sie uns ein Beispiel für die Eingabedaten, die Sie verarbeiten möchten. Ohne es können wir nicht sagen, was Sie erreichen wollen. Sie brauchen vielleicht nicht einmal eine foreach-Schleife. – VenomRush

+0

@Moe ja Ich habe 10 Namen = a []. – JayV

Antwort

0

wie die Sie interessieren ..

<?php 
$a = array('a','aa','aaa');//assumed arrays 
$b = array('b','bb','bbb'); 
$c = array('c','cc','ccc'); 
$query = "INSERT INTO table(id,a,b,c) "; 
foreach ($a as $key => $value) { 
    if($key == (count($a)-1)){ 
     $query.=" VALUES(12,'$a[$key]','$b[$key]','$c[$key]')"; 
    } 
     else{ 
    $query.="VALUES(12,'$a[$key]','$b[$key]','$c[$key]') ,"; 
     } 
} 
echo $query; 

?> 

Ausgang:

INSERT INTO table(id,a,b,c) VALUES(12,'a','b','c') ,VALUES(12,'aa','bb','cc') , VALUES(12,'aaa','bbb','ccc') 
0

Versuchen Sie, diese

// $a = $_POST['a']; 
$id = 12; 
$query = "INSERT INTO table(id,a,b,c) "; 
$insert=array(); 

for($i=0;$i<sizeof($_POST['a']);$i++) { 
    $a = $_POST['a'][$i]; 
    $b = $_POST['b'][$i]; 
    $c = $_POST['c'][$i]; 
    //$query = $query."('$id','$n', '$b', '$c') ,"; 
    $insert[]="VALUES ('$id','$n', '$b', '$c')"; 
} 
$query=$query.implode(',',$insert); 
//$query = substr($query, 0, -1); 
echo $query;