Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/12/2006, 10h13   #1
Candidat au titre de Membre du Club
 
Inscription : septembre 2004
Messages : 36
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 36
Points : 10
Points : 10
Par défaut Syntaxe boucle for

Bonjour
Je voudrais insérer X fois la même ligne à l'aide d'une boucle for mais la syntaxe connais pas ...

J'ai essayé :
for (i=0; i<70; i++) {insert into t_materiel values (last_insert_id(cle_info),last_insert_id(numero_inventaire),'2006-12-19','achat','UC','Dell','Optiplex GX520','A remplir','A remplir','stock','','630','magasin','','SAP','','4500442571','La Riche','Informatique','');}
et
for compteur in 1 .. 70 loop insert into t_materiel values (last_insert_id(cle_info),last_insert_id(numero_inventaire),'2006-12-19','achat','UC','Dell','Optiplex GX520','A remplir','A remplir','stock','','630','magasin','','SAP','','4500442571','La Riche','Informatique','') end loop;
mais ça marche pas !!!
Un conseil SVP !!!
fmoriet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2006, 10h20   #2
Membre du Club
 
Inscription : novembre 2006
Messages : 120
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 120
Points : 55
Points : 55
Le for n'existe pas en mysql !!!
Le mieux est d'utiliser une boucle while
http://dev.mysql.com/doc/refman/5.0/...statement.html

ou une boucle repeat.
http://dev.mysql.com/doc/refman/5.0/...statement.html

Après peut être que dans ton cas, tu soufaite l'utiliser sous du code php et là je ne peux t'aider!!!!
Désolé
beberd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2006, 10h51   #3
Candidat au titre de Membre du Club
 
Inscription : septembre 2004
Messages : 36
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 36
Points : 10
Points : 10
Rien ne fonctionne ....

Je ne veux pas créer de procédure mais je ne peux pas sortir du mode "édition" et donc n'exécute pas la commande ...

Comment fait-on ?
fmoriet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2006, 10h54   #4
Membre du Club
 
Inscription : novembre 2006
Messages : 120
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 120
Points : 55
Points : 55
Tu n'as pas les droits pour créer des procédures ?

Peux tu décrire simplement ce que tu veux faire s'en rentrer dans le détail du code !!!!
beberd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2006, 12h41   #5
Candidat au titre de Membre du Club
 
Inscription : septembre 2004
Messages : 36
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 36
Points : 10
Points : 10
Je voudrais insérer X fois la même ligne à l'aide d'une boucle.
fmoriet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2006, 16h34   #6
Membre du Club
 
Inscription : novembre 2006
Messages : 120
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 120
Points : 55
Points : 55
Ce paramètre X vient d'où?
Quelles sont les données à insérer ? D'où viennent elles ?
Dans quoi les insérer ? où ? selon quelle structure ?
beberd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2006, 07h35   #7
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
Citation:
Envoyé par fmoriet
Bonjour
Je voudrais insérer X fois la même ligne à l'aide d'une boucle for
Ce n'est pas la meilleure méthode... j'y reviens à la fin de ce post.
Citation:
Envoyé par fmoriet
mais la syntaxe connais pas ...
si tu ne connais pas la syntaxe, RTFM http://dev.mysql.com/doc/refman/5.0/...onstructs.html
Citation:
Envoyé par fmoriet
J'ai essayé :
for (i=0; i<70; i++) {insert into t_materiel values (last_insert_id(cle_info),last_insert_id(numero_inventaire),'2006-12-19','achat','UC','Dell','Optiplex GX520','A remplir','A remplir','stock','','630','magasin','','SAP','','4500442571','La Riche','Informatique','');}
et
for compteur in 1 .. 70 loop insert into t_materiel values (last_insert_id(cle_info),last_insert_id(numero_inventaire),'2006-12-19','achat','UC','Dell','Optiplex GX520','A remplir','A remplir','stock','','630','magasin','','SAP','','4500442571','La Riche','Informatique','') end loop;
mais ça marche pas !!!
Normal : la première boucle, c'est du PHP, la seconde c'est du Perl, mais rien de tout ça n'est du SQL.
Citation:
Envoyé par fmoriet
Un conseil SVP !!!
Supposons que X ait une valeur maximal de 9, et que tu aies une table Chiffres(Num) contenant les chiffres de 0 à 9 :

Code :
1
2
3
4
5
insert into t_materiel 
SELECT last_insert_id(cle_info), last_insert_id(numero_inventaire), '2006-12-19', 'achat', 'UC', 'Dell', 'Optiplex GX520', 'A remplir', 'A remplir', 'stock', '', '630', 'magasin', '', 'SAP', '', '4500442571', 'La Riche', 'Informatique', ''
FROM Chiffres
WHERE Chiffres.Num < X
Si maintenant X peut aller jusqu'à 99 :

Code :
1
2
3
4
5
6
insert into t_materiel values 
SELECT ...
FROM Chiffres Unites
  CROSS JOIN Chiffres Dizaines
WHERE 10 * Dizaines.Num + Unites.Num < X
et ainsi de suite selon la valeur maximale de X.
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2006, 07h39   #8
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
Citation:
Envoyé par fmoriet
Je ne veux pas créer de procédure mais je ne peux pas sortir du mode "édition" et donc n'exécute pas la commande ...
Quel mode édition ? de quel client MySQL parles-tu ?
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h59.


 
 
 
 
Partenaires

Hébergement Web