sql >> Base de Datos >  >> RDS >> Mysql

Usando PHP "insertar múltiples" para insertar las 4 filas al mismo tiempo

Cambie los nombres de sus controles para que se publiquen como matrices

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

por eso cuando usas $varTname = $_POST['teamname']; $varTname es una matriz y cada uno de los 4 valores de teamname se establecen como $varTname['G#'] donde # coincide con el número que configuró para ese grupo de campos de entrada.

luego use un bucle for para obtener los datos y ejecutar su consulta, algo como a continuación. mientras lo hace, también puede arreglar su vulnerabilidad de inyección SQL. es posible que también desee un poco más de saneamiento de los datos solo para estar seguro

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

le ahorrará la cantidad de código que necesita hacer