<pre>
<?php
var_dump($_POST);
?>
</pre>
Très pratique en débuggage.<?php
//...
/* On compte les éléments qu'on doit insérer */
$nb = count($tableau);
/* On initialise le début d'une requête SQL */
$sql = "INSERT INTO TABLE (champ_1) VALUES ";
On initialise une boucle
for($i = 0; $i < $nb; $i++)
{
$sql .= "('". $tableau[$i] ."')";
$sql .= $i < ($nb - 1) ? ", " : null;
}
/* Maintenant la requête est prête et on peut l'exécuter */
mysql_connect($host, $admin, $mdp);
// .. etc...
?>Code : Tout sélectionner
$sql .= $i < ($nb - 1) ? ", " : null; Bien vu, j'avais jamais vu cette syntaxe et pourtant elle fonctionne.C'est de la manipulation de tableaux. Si tu as un tableau indexé, les valeurs sont dans $tableau[0], $tableau[1], $tableau[2], etc.. DOnc tu peux pointer les éléments et les insérer les uns après les autres dans une boucle en construisant une requête dynamiquement : en utilisant un pointeur qui s'incrémente à chaque tour du type for()
Ainsi:
<?php //... /* On compte les éléments qu'on doit insérer */ $nb = count($tableau); /* On initialise le début d'une requête SQL */ $sql = "INSERT INTO TABLE (champ_1) VALUES "; On initialise une boucle for($i = 0; $i < $nb; $i++) { $sql .= "('". $tableau[$i] ."')"; $sql .= $i < ($nb - 1) ? ", " : null; } /* Maintenant la requête est prête et on peut l'exécuter */ mysql_connect($host, $admin, $mdp); // .. etc... ?>
//nombre de lignes souhaitées. Récupéré depuis un formulaire juste avant
$nb_rec=$_POST['nombredelignes'];
//boucle pour l'insertion multiple dans la même table
for ($i = 0; $i < $nb_rec; $i++)
{
//là j'ai redéfini les noms des variables de formulaire où on a rentré les données à insérer.
$variable1="code".$i;
$variable2="nom".$i;
$variable3="pnom".$i;
//on n'enregistre que si variable2 (nom) n'est pas vide ou égale à 0 car dans mon cas, le code est une variable cachée incrémentée par mysql donc vide dans le formulaire
if (!empty($_POST[$variable2]))
{
$insertSQL = sprintf("INSERT INTO test (code, nom, pnom) VALUES (%s, %s, %s)",
GetSQLValueString($_POST[$variable1], "int"),
GetSQLValueString($_POST[$variable2], "text"),
GetSQLValueString($_POST[$variable3], "text"));
mysql_select_db($database_marccnx, $marccnx);
$Result1 = mysql_query($insertSQL, $marccnx) or die(mysql_error());
}
}
}