Mysql
 sql >> Datenbank >  >> RDS >> Mysql

wie man mit PHP mehrere Arrays in die Datenbank einfügt

Ich habe Ihren Code geändert, damit er funktioniert:

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

?>

Es funktioniert gut. Ich habe es gerade auf meinem lokalen Rechner getestet.

BEARBEITEN (Kommentare) :

  1. Die Verwendung der Variable $queue_num in input.php ist sinnlos, da diese Variable nur im form.php-Skript verfügbar ist ('wow'-Eingabe in einem anderen Formular platziert, das an die Datei form.php gesendet wird, nicht input.php). Also if (count($sql_array) >= $queue_num) Block funktioniert falsch;

  2. Überprüfen Sie Ihre Konfigurationseinstellungen für die Datenbankverbindung (wie ich im Kommentar geschrieben habe, müssen Sie eine Konstante mit dem Namen „localhost“ definieren oder das Wort „localhost“ in Anführungszeichen setzen);

  3. Ich habe Ihr Formular geändert, weil es eine falsche Struktur hatte;

  4. Ich habe das Ziel der Erstellung des ersten Formulars in form.php nicht verstanden.

Sie können diesen Code ändern, um ihn für Ihren Fall besser geeignet zu machen. Aber versuchen Sie zuerst, diesen hier zu verwenden.

Hinweis. Verwenden Sie var_dump() Funktion, um Ihr $_POST-Array während des Debuggens zu sehen, um zu verstehen, welche Variablen verfügbar sind.