sql >> Databáze >  >> RDS >> Mysql

jak vložit více polí do databáze pomocí PHP

Upravil jsem váš kód, aby fungoval:

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

?>

Funguje to dobře. Právě jsem to otestoval na svém místním počítači.

UPRAVIT(Komentáře) :

  1. Použití proměnné $queue_num v input.php je nesmyslné, protože tato proměnná je dostupná pouze ve skriptu form.php ('wow' vstup umístěný v jiném formuláři, který se odesílá do souboru form.php, nikoli input.php). Takže if (count($sql_array) >= $queue_num) blok funguje špatně;

  2. Zkontrolujte nastavení konfigurace pro připojení k databázi (jak jsem psal v komentáři, musíte definovat konstantu s názvem 'localhost' nebo uzavřít slovo localhost do uvozovek);

  3. Upravil jsem váš formulář, protože měl špatnou strukturu;

  4. Nepochopil jsem cíl vytvoření prvního formuláře ve form.php.

Tento kód můžete upravit tak, aby byl pro váš případ vhodnější. Ale nejprve se pokuste použít tento.

Poznámka. Použijte var_dump() pomocí funkce vidět vaše pole $_POST během ladění, abyste pochopili, jaké proměnné jsou k dispozici.



  1. Problémy Quartz JDBCJobStore s MySQL

  2. Jak by měly být ip2long převedené IP uloženy v MySQL?

  3. chyba řazení ve sjednocovacím dotazu

  4. Přejmenování uživatelem definovaného datového typu v SQL Server (T-SQL)