Formation Google AnalyticsSavez-vous bien utiliser les outils de mesure d'audience ?
Effectuez-vous un calcul de ROI (Retour sur investissement) pour savoir comment améliorer vos campagnes emarketing ?
Savez-vous utiliser les bons outils pour booster votre taux de transformation ?
La formation Web Analytics de Ranking Metrics, présentée par un expert reconnu officiellement par Google Analytics, vous apportera les réponses à toutes vos questions !
===> Informations et inscriptions.

Requête SQL inserer plusieurs enregistrements

Aller à la page 1, 2  Suivante
Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
webac
WRInaute impliqué
WRInaute impliqué

Inscrit le: 04 Mar 2005
Messages: 322
Localisation: Ile de France

URL permanente de ce messagePosté le : Mer Mai 21, 2008 8:09    Sujet du message: Requête SQL inserer plusieurs enregistrements

Bonjour, je souhaite pouvoir inserer plusieurs enregistrement dans ma table avec une seule requête voici mon code :

Code:
<?

include ('connexion.php');
$ids = @implode(',' , $_POST['commande']) ;
$stock = @implode(',', $_POST['stock']) ;
$qte = @implode(',', $_POST['qte']) ;
$magasin = @implode(',', $_POST['magasin']) ;

$sql = "INSERT INTO lignedecommande ('produit', 'magasin', 'stock', 'qte') VALUES ('$ids','$magasin', '$stock', '$qte')" ;

mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

echo '<center><font color="red" size ="14">Commande transmise avec succès.</center></font>';

?>


Actuellement j'obtiens ceci :

Code:
Erreur SQL !INSERT INTO lignedecommande ('produit', 'magasin', 'stock', 'qte') VALUES ('ABRICOT,AUBERGINE,AVOCAT,BANANE,BREABURN,CANADA PLATEAU 1 RANG,CAROTTE,CERISE,CHANTECLERC PLATEAU 1 RANG,CHOU FLEUR,CHOUX BLANC,CITRON,CONCOMBRE,COURGETTE,ENDIVES SACHET 1KG,ENDIVES VRAC,FENOUIL,GALA PLATEAU IMPORT 3 RANG,GOLDEN PLATEAU 1 RANG,GOLDEN SACHET,GRANY PLATEAU IMPORT 3 RANG,KIWI,LAITUE ICEBERG,MACHE,MANGUE,MELON VERT,MELON CHARENTAIS,MELON GALIA,MELON JAUNE,NASHI,NAVET,NECTARINE,OIGNON BLANC FILET,OIGNON ROUGE FILET,ORANGE FLT,ORANGE VRAC,PACKAMS PLATEAU,PASTEQUE,PECHE,PIMENT VERT,PINK LADY PLATEAU 1 RANG,POIRE CONFERENCE,POIREAU,POIVRON ROUGE,POIVRON VERT,POMELOS,POMME DE TERRE VRAC,PRUNE ROUGE,RAISIN BLANC,RAISIN NOIR RED GLOBE,RED PLATEAU IMPORT 3 RANG,ROUGE SACHET,TOMATE,TOMATE CERISE BARQUETTE,TOMATE COCKTAIL 500G,TOMATE GRAPPE','test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test', '1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', '2,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0')
Erreur de syntaxe près de ''produit', 'magasin', 'stock', 'qte') VALUES ('ABRICOT,AUBERGINE' à la ligne 1


comment coder pour pouvoir inserer tous ces enregistrement en une seule fois?

Merci de votre aide
 
webac Visiter le site web du posteur
BadProcESs
WRInaute accro
WRInaute accro

Inscrit le: 28 Juil 2003
Messages: 2406
Localisation: Ici ! Voyons ! Où veux-tu que je sois ? ;)

URL permanente de ce messagePosté le : Mer Mai 21, 2008 8:16    Sujet du message: Requête SQL inserer plusieurs enregistrements

Le mieux est encore d'ouvrir un recordset editable (avec un transaction), et de faire une boucle pour insérer tes enregistrements.
 
BadProcESs Visiter le site web du posteur
webac
WRInaute impliqué
WRInaute impliqué

Inscrit le: 04 Mar 2005
Messages: 322
Localisation: Ile de France

URL permanente de ce messagePosté le : Mer Mai 21, 2008 8:18    Sujet du message: Requête SQL inserer plusieurs enregistrements

peux tu m'expliquer plus en détail car je n'ai pas bien saisi ta réponse étant débutant en php j'avoue que je ne comprends pas trop.
Merci
 
webac Visiter le site web du posteur
Bacteries
WRInaute accro
WRInaute accro

Inscrit le: 27 Mai 2004
Messages: 1107
Localisation: France - Nantes

URL permanente de ce messagePosté le : Mer Mai 21, 2008 8:19    Sujet du message: Requête SQL inserer plusieurs enregistrements

webac> Tu mets tes variables dans des tableaux. Tu fais une boucle et à chaque passage de la boucle tu créé un enregistrement dans la base de données.
 
Bacteries Visiter le site web du posteur
webac
WRInaute impliqué
WRInaute impliqué

Inscrit le: 04 Mar 2005
Messages: 322
Localisation: Ile de France

URL permanente de ce messagePosté le : Mer Mai 21, 2008 8:21    Sujet du message: Requête SQL inserer plusieurs enregistrements

un p'tit bout de code peut être pour me mettre sur la piste?
 
webac Visiter le site web du posteur
UsagiYojimbo
WRInaute accro
WRInaute accro

Inscrit le: 23 Nov 2005
Messages: 2460
Localisation: Lyon, capitale des Gaules

URL permanente de ce messagePosté le : Mer Mai 21, 2008 8:25    Sujet du message: Requête SQL inserer plusieurs enregistrements

Sinon la syntaxe pour faire de l'insert multiple, il me semble que c'est plutôt comme ça :

Code:

INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6)
 
UsagiYojimbo Visiter le site web du posteur
webac
WRInaute impliqué
WRInaute impliqué

Inscrit le: 04 Mar 2005
Messages: 322
Localisation: Ile de France

URL permanente de ce messagePosté le : Mer Mai 21, 2008 8:38    Sujet du message: Requête SQL inserer plusieurs enregistrements

C'est exactement ce que j'essaye de reproduire grace aux implode UsagiYojimbo mais apparament ce n'est pas bon si vous avez une autre piste à me fournir j'en seraiqs très heureux.
 
webac Visiter le site web du posteur
Bacteries
WRInaute accro
WRInaute accro

Inscrit le: 27 Mai 2004
Messages: 1107
Localisation: France - Nantes

URL permanente de ce messagePosté le : Mer Mai 21, 2008 8:48    Sujet du message: Requête SQL inserer plusieurs enregistrements

En supposant que tes variables soit des tableaux bien en forme & cie (exemple avec juste commande, et stock).

Code:

$ok=0;
$ko=0;
for ($i = 0; $i < sizeof($_POST['commande']); $i++) {
    $sql = "INSERT INTO lignedecommande ('produit', 'magasin', 'stock', 'qte') VALUES ('" . $_POST['commande'][$i] . "','$magasin', '" . $_POST['stock'][$i] . "', '$qte')" ;

if (mysql_query($sql))
{
   $ok++
} else {
    $ko++
}
}
 
Bacteries Visiter le site web du posteur
UsagiYojimbo
WRInaute accro
WRInaute accro

Inscrit le: 23 Nov 2005
Messages: 2460
Localisation: Lyon, capitale des Gaules

URL permanente de ce messagePosté le : Mer Mai 21, 2008 8:50    Sujet du message: Requête SQL inserer plusieurs enregistrements

webac a écrit:
C'est exactement ce que j'essaye de reproduire grace aux implode UsagiYojimbo mais apparament ce n'est pas bon si vous avez une autre piste à me fournir j'en seraiqs très heureux.


En fait le souci vient de ton implode.

Toi ce que tu fais c'est plutôt ça au final :

Code:

INSERT INTO table (a,b,c) VALUES ('1,2,3','4,5,6')


Donc normal que ça marche pas.
 
UsagiYojimbo Visiter le site web du posteur
webac
WRInaute impliqué
WRInaute impliqué

Inscrit le: 04 Mar 2005
Messages: 322
Localisation: Ile de France

URL permanente de ce messagePosté le : Mer Mai 21, 2008 9:00    Sujet du message: Requête SQL inserer plusieurs enregistrements

ok merci à tous je vais essayer de me débrouiller avec tous ces bons conseils.
 
webac Visiter le site web du posteur
webac
WRInaute impliqué
WRInaute impliqué

Inscrit le: 04 Mar 2005
Messages: 322
Localisation: Ile de France

URL permanente de ce messagePosté le : Mer Mai 21, 2008 10:11    Sujet du message: Requête SQL inserer plusieurs enregistrements

pouvez vous me donner un petit coup de main j'ai testé ton code Bacteries mais ça ne fonctionne pas quand je fais un echo de $ok j'obtiens 0 et quand je fais un echo $ko j'obtiens 56.
 
webac Visiter le site web du posteur
Bacteries
WRInaute accro
WRInaute accro

Inscrit le: 27 Mai 2004
Messages: 1107
Localisation: France - Nantes

URL permanente de ce messagePosté le : Mer Mai 21, 2008 10:15    Sujet du message: Requête SQL inserer plusieurs enregistrements

Tu as bien 56 élément dans ton tableau?
Fais des écho de ta requête et teste là sous phpmyadmin voir l'erreur SQL.
 
Bacteries Visiter le site web du posteur
webac
WRInaute impliqué
WRInaute impliqué

Inscrit le: 04 Mar 2005
Messages: 322
Localisation: Ile de France

URL permanente de ce messagePosté le : Mer Mai 21, 2008 10:20    Sujet du message: Requête SQL inserer plusieurs enregistrements

j'ai bien 56 elements dans mon tableau.

j'obtiens une erreur de syntaxe :

Code:
MySQL a répondu:

#1064 - Erreur de syntaxe pr�s de ''Produit', 'Mag', 'Stock', 'Qte') VALUES ('TOMATE GRAPPE','test'' � la ligne 1
 
webac Visiter le site web du posteur
Bacteries
WRInaute accro
WRInaute accro

Inscrit le: 27 Mai 2004
Messages: 1107
Localisation: France - Nantes

URL permanente de ce messagePosté le : Mer Mai 21, 2008 10:32    Sujet du message: Requête SQL inserer plusieurs enregistrements

Enlève les ' dans la liste des colonnes. Ou mets y des antiquote ( ` ) à la place.
 
Bacteries Visiter le site web du posteur
webac
WRInaute impliqué
WRInaute impliqué

Inscrit le: 04 Mar 2005
Messages: 322
Localisation: Ile de France

URL permanente de ce messagePosté le : Mer Mai 21, 2008 10:34    Sujet du message: Requête SQL inserer plusieurs enregistrements

Merci Bacteries ça fonctionne impec!

et merci également a tous les autres et a WRI biensur!
 
webac Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 2 - Aller à la page 1, 2  Suivante
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort