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

Brug af PHP "indsæt flere" til at indsætte alle 4 rækker på samme tid

ændre navnene på dine kontroller, så de sender som arrays

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

det er derfor, når du bruger $varTname = $_POST['teamname']; $varTname er en matrix og hver af de 4 værdier af teamname er indstillet som $varTname['G#'] hvor # svarer til det tal, du har angivet for den gruppe af inputfelter.

brug derefter en for-løkke til at hente dataene og udføre din forespørgsel, noget i stil med belg. mens du er i gang, kan du også rette op på din SQL Injection-sårbarhed. du kan også ønske at gøre noget mere rent til dataene bare for at være sikker

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

vil spare dig på, hvor meget kode du skal gøre



  1. reference auto-increment kolonner?

  2. Sequelize grænse og udligne forkert placering i forespørgslen

  3. VLDB'er i de 20-teenagere:You're Gonna Need A Bigger ...

  4. Dublet kolonne ved joinforbindelse