Mysql
 sql >> Baza danych >  >> RDS >> Mysql

jak wstawić wiele tablic do bazy danych za pomocą PHP

Zmodyfikowałem Twój kod, aby działał:

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

?>

To działa dobrze. Właśnie przetestowałem to na moim lokalnym komputerze.

EDYTUJ(Komentarze) :

  1. Użycie zmiennej $queue_num w input.php jest bez sensu, ponieważ ta zmienna jest dostępna tylko w skrypcie form.php('wow' input umieszczony w innym formularzu, który jest przesyłany do pliku form.php, a nie input.php). Więc if (count($sql_array) >= $queue_num) blok działa źle;

  2. Sprawdź swoje ustawienia konfiguracyjne dla połączenia z bazą danych (jak napisałem w komentarzu, musisz zdefiniować stałą o nazwie 'localhost' lub umieścić słowo localhost w cudzysłowie);

  3. Zmodyfikowałem Twój formularz, ponieważ miał niewłaściwą strukturę;

  4. Nie rozumiałem celu stworzenia pierwszego formularza w form.php.

Możesz zmodyfikować ten kod, aby był bardziej odpowiedni dla Twojego przypadku. Ale najpierw spróbuj użyć tego.

Uwaga. Użyj var_dump() funkcja, aby zobaczyć tablicę $_POST podczas debugowania, aby zrozumieć, jakie zmienne są dostępne.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Importowanie JSON do Mysql

  2. Jak zainstalować i skonfigurować phpMyAdmin w CentOS 6?

  3. Użyj mysqldump do tworzenia kopii zapasowych MySQL lub MariaDB

  4. MySQL wybierz odrębny

  5. Czy wyzwalacz PRZED WSTAWIENIEM jest wykonywany dla każdego wiersza we wstawce w zapytaniu o zduplikowaną aktualizację klucza?