sql >> Database >  >> RDS >> Mysql

hoe meerdere arrays in de database in te voegen met behulp van PHP

Ik heb je code aangepast om het te laten werken:

formulier.php

<form method="POST" action="form.php">
<input type="text" name="waw" />
<input type="submit" />
</form>

<form method="POST" action="input.php">
<?php 
$i=0;

while ($i<$_GET['waw'])
{
?>

<!-- Person #1 -->

<input type="text" name="username[]" />

<input type="text" name="phonenum[]" />

<input type="text" name="add[]" /><br />


<?php 
$i++;
}
?>
<input type="submit" />
</form>

input.php

<?php


$username="maizakath";
$password="12345";
$database="tryinsert";
mysql_connect('localhost',$username,$password);
@mysql_select_db($database) or die("<b>Unable to specified database</b>");



$sql_start = 'INSERT INTO `mytable` VALUES '; 
$sql_array = array(); 
$queue_num = $_POST['waw']; 
foreach ($_POST['username'] as $row=>$name)
{
$username = $name;
$phonenum = $_POST['phonenum'][$row];
$add = $_POST['add'][$row];
$sql_array[] = '("' . $username . '", "'.$phonenum.'", "'.$add.'")'; 
if (count($sql_array) >= $queue_num) {
  $query_single=$sql_start . implode(', ', $sql_array);
  mysql_query($query_single); 
  $sql_array = array(); 
}
}

if (count($sql_array) > 0)  {
  $query = $sql_start . implode(', ', $sql_array);
  mysql_query($query)or die(mysql_error());
}

?>

Het werkt goed. Ik heb het net getest op mijn lokale computer.

BEWERKEN(Opmerkingen) :

  1. Het gebruik van de variabele $queue_num in input.php is zinloos, omdat deze variabele alleen beschikbaar is in het form.php-script ('wow'-invoer geplaatst in een andere vorm, die wordt verzonden naar het bestand form.php, niet input.php). Dus if (count($sql_array) >= $queue_num) blok werkt verkeerd;

  2. Controleer uw configuratie-instellingen voor de databaseverbinding (zoals ik in commentaar heb geschreven, moet u een constante definiëren met de naam 'localhost' of het woord localhost tussen aanhalingstekens plaatsen);

  3. Ik heb je formulier aangepast, omdat het een verkeerde structuur had;

  4. Ik begreep het doel van het maken van het eerste formulier in form.php niet.

U kunt deze code wijzigen om deze geschikter te maken voor uw geval. Maar probeer eerst deze te gebruiken.

Opmerking. Gebruik var_dump() functie om uw $_POST-array te zien tijdens het debuggen om te begrijpen welke variabelen beschikbaar zijn.



  1. Creatieve toepassingen voor de blackhole engine

  2. Startnummer automatisch verhogen wijzigen?

  3. MySQL-TEKST versus BLOB versus CLOB

  4. Trigram Jokertekenreeks zoeken in SQL Server