Mysql
 sql >> база данни >  >> RDS >> Mysql

как да вмъкнете множество масиви в база данни с помощта на PHP

Промених кода ви, за да работи:

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

?>

Работи добре. Току-що го тествах на моята локална машина.

РЕДАКТИРАНЕ (Коментари) :

  1. Използването на променлива $queue_num в input.php е безсмислено, тъй като тази променлива е достъпна само в скрипт form.php (вход 'wow', поставен в друга форма, която се изпраща във файла form.php, а не input.php). Така че if (count($sql_array) >= $queue_num) блокът работи неправилно;

  2. Проверете настройките на вашата конфигурация за връзката към базата данни (както написах в коментар, трябва да дефинирате константа с име 'localhost' или да оградите думата localhost с кавички);

  3. Промених формуляра ви, защото имаше грешна структура;

  4. Не разбрах целта на създаването на първата форма във form.php.

Можете да промените този код, за да го направите по-подходящ за вашия случай. Но първо се опитайте да използвате този.

Забележка. Използвайте var_dump() функция, за да видите вашия $_POST масив по време на отстраняване на грешки, за да разберете какви променливи са налични.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вмъкване в 2 таблици с PDO MySQL

  2. Промяна и нулиране на MySQL root парола

  3. Visual Studio - Неуспешно свързване на таблицата на базата данни MySql с DataSet

  4. Грешка с MySQLdb на OS X El Capitan

  5. Как да избягвате специални SQL символи в регулярен израз в Mysql