Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1548 connectés 

  FORUM HardWare.fr
  Programmation

  [ PHP / MySQL ] INSERT multiple

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ PHP / MySQL ] INSERT multiple

n°70523
xmulder
un peu plus au nord...
Posté le 08-11-2001 à 00:56:50  profilanswer
 

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
mood
Publicité
Posté le 08-11-2001 à 00:56:50  profilanswer
 

n°70541
Mara's dad
Yes I can !
Posté le 08-11-2001 à 01:30:48  profilanswer
 

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...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°70550
xmulder
un peu plus au nord...
Posté le 08-11-2001 à 01:49:21  profilanswer
 

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? :)


---------------
1km = 1024m
n°70552
Mara's dad
Yes I can !
Posté le 08-11-2001 à 02:26:43  profilanswer
 

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]


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°70900
xmulder
un peu plus au nord...
Posté le 09-11-2001 à 03:09:37  profilanswer
 

précision, fo pas oublier de NE PAS mettre les parenthèses  :D  
 
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à. :hello:

 

[edtdd]--Message édité par xmulder--[/edtdd]


---------------
1km = 1024m

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [ PHP / MySQL ] INSERT multiple

 

Sujets relatifs
Pour un GROS NUL EN PHPPHP PROBLEME AFFICHAGE VALEURS (<ESPACE> et ')
[PHP] Include avec paramètres[PHP] Question sur commande/script pour....
[PHP] mise à jour d'une Base de Donnée[PHP + COOKIES] : comment tester l'existence d'un cookie ?
PHP/ MySQL SELECT CONCAT[PHP] pb. tableau de références
PhP inclusion errror .. une solution ? 
Plus de sujets relatifs à : [ PHP / MySQL ] INSERT multiple


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR