Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verwenden Sie PHP „insert multiple“, um alle 4 Zeilen gleichzeitig einzufügen

Ändern Sie die Namen Ihrer Steuerelemente, sodass sie als Arrays angezeigt werden

<input type="text" name="teamname[G1]">
<input type="text" name="teamname[G2]">

Aus diesem Grund verwenden Sie $varTname = $_POST['teamname']; $varTname ist ein Array und jeder der 4 Werte von teamname werden als $varTname['G#'] gesetzt wobei # mit der Zahl übereinstimmt, die Sie für diese Gruppe von Eingabefeldern festgelegt haben.

Verwenden Sie dann eine for-Schleife, um die Daten abzurufen, und führen Sie Ihre Abfrage aus, etwa so wie unten. Während Sie dabei sind, können Sie auch Ihre SQL-Injection-Schwachstelle beheben. Vielleicht möchten Sie die Daten auch etwas gründlicher reinigen, nur um sicherzugehen

$varTname = $_POST['teamname'];
$varCity = $_POST['city'];
$varBplayer = $_POST['bestplayer'];
$varYearformed = $_POST['yearformed'];
$varWebsite = $_POST['website'];

$stmt = $mysqli->prepare('INSERT INTO Teams (teamname, city, bestplayer, yearformed, website) VALUES (?,?,?,?,?,?)');
$varTname1Bind = "";
$varTnameBind = "";
$varCityBind = "";
$varBplayerBind = "";
$varWebsiteBind = "";

 // assuming they are all strings, adjust where needed
 $stmt->bind_param('sssssss',
    $varTname1Bind,
    $varTnameBind,
    $varCityBind,
    $varBplayerBind,
    $varYearformedBind,
    $varWebsiteBind);

for($i = 1; i < 5; $i++)
{
    $varTname1Bind = $varTname['G'.$i];
    $varTnameBind = $varTname['G'.$i];
    $varCityBind = $varCity['G'.$i];
    $varBplayerBind = $varBplayer['G'.$i];
    $varYearformedBind = $varYearformed['G'.$i];
    $varWebsiteBind = $varWebsite['G'.$i];

    $stmt->execute();
}

spart Ihnen, wie viel Code Sie tun müssen