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

cómo insertar una matriz múltiple en la base de datos usando PHP

He modificado tu código para que funcione:

formulario.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>

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

?>

Funciona bien. Acabo de probarlo en mi máquina local.

EDITAR (Comentarios) :

  1. El uso de la variable $queue_num en input.php no tiene sentido, porque esta variable solo está disponible en el script form.php (entrada 'wow' colocada en otro formulario, que se envía al archivo form.php, no input.php). Entonces if (count($sql_array) >= $queue_num) el bloque funciona mal;

  2. Verifique la configuración de su configuración para la conexión de la base de datos (como escribí en el comentario, debe definir la constante con el nombre 'localhost' o encerrar la palabra localhost entre comillas);

  3. Modifiqué su formulario porque tenía una estructura incorrecta;

  4. No entendí el objetivo de crear el primer formulario en form.php.

Puede modificar este código para hacerlo más apropiado para su caso. Pero primero intenta usar este.

Nota. Utilice var_dump() función para ver su matriz $_POST durante la depuración para comprender qué variables están disponibles.