EKKi: mehrere neue Einträge in MySQL-Datenbank machen - Anzhal unbek.

Beitrag lesen

Mahlzeit Olk Okenheld,

... und sehen wie genau aus (also das $_POST-Array)?
Wenn der Benutzer z.B. zwei Datensätze übergibt wäre der erste Datensatz:
$_POST['Name1']
$_POST['Vorname1']
$_POST['Anschrift1']
der zweite wäre
$_POST['Name2']
$_POST['Vorname2']
$_POST['Anschrift2']

Wie dedlfix bereits anmerkte wäre die Verwendung von Namen wie "Name[1]", "Vorname[1]", "Name[2]", "Vorname[2]" usw. sinnvoller, weil Du dann nämlich gleich entsprechende Arrays zur Verfügung hättest:

$sql = '';  
  
// Einmal durch alle übertragenen Daten laufen  
for ($i = 1; $i <= 40; $i++) {  
  // Überprüfen, ob alle "Pflichtangaben" gemacht wurden (musst Du entsprechend Deinen Anforderungen umschreiben)  
  if (($_POST['Name'][$i] != '') && ($_POST['Vorname'][$i] != '')) {  
    $sql .= sprintf(", ('%s', '%s')", mysql_real_escape_string($_POST['Name'][$i]), mysql_real_escape_string($_POST['Vorname'][$i]));  
  }  
}  
  
if ($sql = '') {  
  $sql = sprintf("INSERT INTO %s (Name, Vorname) VALUES %s", $MainTable, substr($sql, 1));  
}

(Ungetesteter Code-Vorschlag)

Insbesondere berücksichtigt dieser Code die von Dir sträflich vernachlässigten Kontextwechsel und minimiert das Risiko von Angriffen durch SQL-Injection (durch den Einsatz von mysql_real_escape_string()).

MfG,
EKKi

--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|