Mysql
 sql >> Database >  >> RDS >> Mysql

Utilizzo di PHP "insert multiple" per inserire tutte e 4 le righe contemporaneamente

cambia i nomi dei tuoi controlli in modo che pubblichino come array

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

ecco perché quando usi $varTname = $_POST['teamname']; $varTname è un array e ciascuno dei 4 valori di teamname sono impostati come $varTname['G#'] dove # corrisponde al numero che hai impostato per quel gruppo di campi di input.

quindi usa un ciclo for per ottenere i dati ed eseguire la tua query, qualcosa come di seguito. mentre ci sei puoi anche correggere la tua vulnerabilità di SQL Injection. potresti anche volere un po' più di sanificazione dei dati solo per essere sicuro

$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();
}

ti farà risparmiare su quanto codice devi fare