Mysql
 sql >> Base de données >  >> RDS >> Mysql

Utilisation de PHP "insert multiple" pour insérer les 4 lignes en même temps

changez les noms de vos contrôles afin qu'ils s'affichent en tant que tableaux

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

c'est pourquoi lorsque vous utilisez $varTname = $_POST['teamname']; $varTname est un tableau et chacune des 4 valeurs de teamname sont définis comme $varTname['G#'] où # correspond au nombre que vous avez défini pour ce groupe de champs de saisie.

puis utilisez une boucle for pour obtenir les données et exécuter votre requête, quelque chose comme ci-dessous. pendant que vous y êtes, vous pouvez également corriger votre vulnérabilité d'injection SQL. vous voudrez peut-être aussi un peu plus d'assainissement des données juste pour être sûr

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

vous fera économiser sur la quantité de code que vous devez faire