INSERT multiple [ PHP / MySQL ] - Programmation
Marsh Posté le 08-11-2001 à 01:30:48
INSERT TA_TABLE (COLONNE_1, COLONNE_2,...)
VALUES (Valeur_1,Valeur_2,...),
(Valeur_1,Valeur_2,...),
(Valeur_1,Valeur_2,...),
...
(Valeur_1,Valeur_2,...)
Il te reste juste à générer les (Valeur_1,Valeur_2,...), ce qui ne doit pas être trop difficile avec un implode() sur ton tableau...
Marsh Posté le 08-11-2001 à 01:49:21
Mara's dad a écrit a écrit : INSERT TA_TABLE (COLONNE_1, COLONNE_2,...) VALUES (Valeur_1,Valeur_2,...), (Valeur_1,Valeur_2,...), (Valeur_1,Valeur_2,...), ... (Valeur_1,Valeur_2,...) Il te reste juste à générer les (Valeur_1,Valeur_2,...), ce qui ne doit pas être trop difficile avec un implode() sur ton tableau... |
ok, le implode() je vois pas trop comment ca marche alors je v essayer un truc du genre:
$query= "INSERT TA_TABLE (COLONNE_1, COLONNE_2,...)
VALUES ";
for($i=0;$i<$nb_ligne;$i++)
{
if($i>0)
$query.=",";
$query.= "($tab1[$i], $tab2[$i], ...)";
}
g bon?
Marsh Posté le 08-11-2001 à 02:26:43
Presque...
Faut pas oublier les () !
$query= "INSERT TA_TABLE (COLONNE_1, COLONNE_2,...) VALUES (";
for($i=0;$i<$nb_ligne;$i++)
{
if($i>0)
$query.=" ), (";
$query.= implode(",", $tab[$i]);
}
$query.=" )
...
Pour $tab[ligne,colonne], implode(",", $tab[$i]) retourne tous les éléments de $tab[$i] (donc les colonnes) séparés par des virgules)
Avec http://www.php.net/manual/fr/function.array-walk.php, y'a même moyen de pas avoir de boucle for ! Trop fort non ;-)
Puis, les noms des colonnes, elles sont peut-être dans un tableaux ? ? ?, ou on peut les lire dans la structure de la table ...
[edtdd]--Message édité par Mara's dad--[/edtdd]
Marsh Posté le 09-11-2001 à 03:09:37
précision, fo pas oublier de NE PAS mettre les parenthèses
la requete doit etre de la forme:
"INSERT INTO TA_TABLE (COLONNE_1, COLONNE_2,...) VALUES (ligne1), (ligne2), ..., (lignen)"
et non pas
"INSERT INTO TA_TABLE (COLONNE_1, COLONNE_2,...) VALUES ((ligne1), (ligne2), ..., (lignen))"
voilà.
[edtdd]--Message édité par xmulder--[/edtdd]
Marsh Posté le 08-11-2001 à 00:56:50
Est-il possible d'insérer les données d'un tableau (X dimensions) ou de X tableaux ("uni-dimensionnel" ) dans une table ac une requete INSERT multiple
parcq faire une boucle pour ajouter les lignes une par une me parait long et pas très heureux.
j'espère q c compréhensible...
Merci.
FFX.
---------------
1km = 1024m