requête insertion dans 02 tables mysql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : requête insertion dans 02 tables mysql

Re: requête insertion dans 02 tables mysql

par Jaouad » 20 sept. 2018, 19:45

$stmt = $bdd->prepare ("INSERT INTO lettre_voiture (numero,datelettre,typelettre) VALUES ( ? ,  ? ,  ? )");

 $stmt->bindParam("numero", $_GET['numero']);
    $stmt->bindParam("datelettre", $_GET['datelettre']);
        $stmt->bindParam("typelettre", $_GET['typelettre]);

// sinon a la place de "bindParam" essaye de executer table par table avec du transaction : voila le code

$stmt -> execute(array($_GET['numero'], $_GET['datelettre'] ,$_GET['typelettre] ));   

// la meme chose pour les autres tables

Re: requête insertion dans 02 tables mysql

par malika014 » 19 sept. 2018, 20:55

je n'ai aucun changement malgré les dernières remarques, je continue à chercher.

Re: requête insertion dans 02 tables mysql

par @rthur » 19 sept. 2018, 19:16

Tu n'as pas respecté la syntaxe des variables dans ta requête SQL preparée, il faut des 2 points.
Cf les exemples de la doc :
http://php.net/manual/fr/pdostatement.bindparam.php

Re: requête insertion dans 02 tables mysql

par malika014 » 19 sept. 2018, 18:21

voici le nouveau code :

Code : Tout sélectionner

<?php require_once "dbconfig.php"; if (isset($_POST['save'])) { $nomclient = htmlentities($_POST['nomclient']); $nomtransporteur = htmlentities($_POST['nomtransporteur']); $nomconducteur = htmlentities($_POST['nomconducteur']); $numero = htmlentities($_POST['numero']); $datelettre = htmlentities($_POST['datelettre']); $typelettre = htmlentities($_POST['typelettre']); $immatracteur = htmlentities($_POST['immatracteur']); $immaremorque = htmlentities($_POST['immaremorque']); $natureproduit = htmlentities($_POST['natureproduit']); $essence = htmlentities($_POST['essence']); $quantitecolis = htmlentities($_POST['quantitecolis']); $charge = htmlentities($_POST['charge']); $provenance = htmlentities($_POST['provenance']); $destination = htmlentities($_POST['destination']); $commentaire = htmlentities($_POST['commentaire']); try { $stmt = $bdd->prepare ("INSERT INTO lettre_voiture (numero,datelettre,typelettre) VALUES (numero, datelettre, typelettre)"); $stmt->bindParam("numero", $numero); $stmt->bindParam("datelettre", $datelettre); $stmt->bindParam("typelettre", $typelettre); $stmt1 = $bdd->prepare ("INSERT INTO truck (nomclient,nomtransporteur,nomconducteur,immatracteur,immaremorque,natureproduit, essence,quantitecolis,charge,provenance,destination,commentaire) VALUES (nomclient, nomtransporteur, nomconducteur, immatracteur, immaremorque, natureproduit, essence, quantitecolis, charge, provenance, destination, commentaire)"); $stmt1->bindParam("nomclient", $nomclient); $stmt1->bindParam("nomtransporteur", $nomtransporteur); $stmt1->bindParam("nomconducteur", $nomconducteur); $stmt1->bindParam("immatracteur", $immatracteur); $stmt1->bindParam("immaremorque", $immaremorque); $stmt1->bindParam("natureproduit", $natureproduit); $stmt1->bindParam("essence", $essence); $stmt1->bindParam("quantitecolis", $quantitecolis); $stmt1->bindParam("charge", $charge); $stmt1->bindParam("provenance", $provenance); $stmt1->bindParam("destination", $destination); $stmt1->bindParam("commentaire", $commentaire); if($stmt->execute() AND $stmt1->execute()) { echo "<script>alert('Successfully Added..')</script>"; echo "<script>window.open('index.php','_self')</script>"; header('Location:formulaire_camion.php'); } else{ echo "Un souci au niveau de la requ�te"; header('location:formulaire_camion.php'); } }catch(PDOException $e) { echo "Erreur lors de l\'enregistrement".$e->getMessage(); } } ?>
je n'ai aucune erreur en retour, mais mes tables sont vides

Re: requête insertion dans 02 tables mysql

par Maitrepylos » 19 sept. 2018, 17:19

et donc rien a faire de mes remarques ? :

Code : Tout sélectionner

$stmt = $bdd->prepare ("INSERT INTO lettre_voiture (numero,datelettre,typelettre) VALUES (,numero, datelettre, typelettre)");
le virgule de VALUES (,

les deux points :

Re: requête insertion dans 02 tables mysql

par malika014 » 19 sept. 2018, 17:01

j'ai modifié mon code en ceci

Code : Tout sélectionner

<?php require_once "dbconfig.php"; //var_dump ($bdd); if (isset($_POST['save'])) { $nomclient = htmlentities($_POST['nomclient']) /*?$_POST['nomclient']:''*/; $nomtransporteur = htmlentities($_POST['nomtransporteur'])/*?$_POST['nomtransporteur']:''*/; $nomconducteur = htmlentities($_POST['nomconducteur'])/*?$_POST['nomconducteur']:''*/; $numero = htmlentities($_POST['numero'])/*?$_POST['numero']:''*/; $datelettre = htmlentities($_POST['datelettre'])/*?$_POST['date']:''*/; $typelettre = htmlentities($_POST['typelettre'])/*?$_POST['typelettre']:''*/; $immatracteur = htmlentities($_POST['immatracteur'])/*?$_POST['immatracteur']:''*/; $immaremorque = htmlentities($_POST['immaremorque'])/*$_POST['immaremorque']:''*/; $natureproduit = htmlentities($_POST['natureproduit'])/*?$_POST['natureproduit']:''*/; $essence = htmlentities($_POST['essence'])/*?$_POST['essence']:''*/; $quantitecolis = htmlentities($_POST['quantitecolis'])/*?$_POST['quantitecolis']:''*/; $charge = htmlentities($_POST['charge'])/*?$_POST['charge']:''*/; $provenance = htmlentities($_POST['provenance'])/*?$_POST['provenance']:''*/; $destination = htmlentities($_POST['destination'])/*?$_POST['destination']:''*/; $commentaire = htmlentities($_POST['commentaire'])/*?$_POST['commentaire']:''*/; try { $stmt = $bdd->prepare ("INSERT INTO lettre_voiture (numero,datelettre,typelettre) VALUES (,numero, datelettre, typelettre)"); $stmt->bindParam(":numero", $numero); $stmt->bindParam(":datelettre", $datelettre); $stmt->bindParam(":typelettre", $typelettre); $stmt1 = $bdd->prepare ("INSERT INTO truck (nomclient,nomtransporteur,nomconducteur,immatracteur,immaremorque,natureproduit, essences,quantitecolis,charge,provenance,destination,commentaire) VALUES (,nomclient, nomtransporteur, nomconducteur, immatracteur, immaremorque, natureproduit, essence, quantitecolis, charge, provenance, destination, commentaire)"); $stmt1->bindParam(":nomclient", $nomclient); $stmt1->bindParam(":nomtransporteur", $nomtransporteur); $stmt1->bindParam(":nomconducteur", $nomconducteur); $stmt1->bindParam(":immatracteur", $immatracteur); $stmt1->bindParam(":immaremorque", $immaremorque); $stmt1->bindParam(":natureproduit", $natureproduit); $stmt1->bindParam(":essence", $essence); $stmt1->bindParam(":quantitecolis", $quantitecolis); $stmt1->bindParam(":charge", $charge); $stmt1->bindParam(":provenance", $provenance); $stmt1->bindParam(":destination", $destination); $stmt1->bindParam(":commentaire", $commentaire); if($stmt->execute() AND $stmt1->execute()) { echo "<script>alert('Successfully Added..')</script>"; echo "<script>window.open('index.php','_self')</script>"; header('Location:formulaire_camion.php'); } else{ echo "Un souci au niveau de la requ�te"; header('location:formulaire_camion.php'); } }catch(PDOException $e) { echo "Erreur lors de l\'enregistrement".$e->getMessage(); } } ?>
mais j'ai toujours cette erreur : Erreur lors de l\'enregistrementSQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe pr�s de 'numero, datelettre, typelettre)' � la ligne 1

Re: requête insertion dans 02 tables mysql

par Maitrepylos » 19 sept. 2018, 13:55

et donc ligne 31 c'est toujours if($stmt->execute()) ????

Re: requête insertion dans 02 tables mysql

par malika014 » 19 sept. 2018, 12:48

il s'agit plutôt de ceci :
C:\wamp\www\truck_tracking\traitement.php:6:
object(PDO)[1]

( ! ) Fatal error: in C:\wamp\www\truck_tracking\traitement.php on line 31
( ! ) PDOException: in C:\wamp\www\truck_tracking\traitement.php on line 31
Call Stack
# Time Memory Function Location
1 0.0027 372168 {main}( ) ...\traitement.php:0
2 0.0176 387088 execute ( ) ...\traitement.php:31

Re: requête insertion dans 02 tables mysql

par malika014 » 19 sept. 2018, 12:45

voilà ce que j'ai en retour:

( ! ) Notice: Undefined variable: dbb in C:\wamp\www\truck_tracking\traitement.php on line 6
Call Stack
# Time Memory Function Location
1 0.0057 372192 {main}( ) ...\traitement.php:0
C:\wamp\www\truck_tracking\traitement.php:6:null

( ! ) Fatal error: in C:\wamp\www\truck_tracking\traitement.php on line 31
( ! ) PDOException: in C:\wamp\www\truck_tracking\traitement.php on line 31
Call Stack
# Time Memory Function Location
1 0.0057 372192 {main}( ) ...\traitement.php:0
2 0.0509 387688 execute ( ) ...\traitement.php:31

Re: requête insertion dans 02 tables mysql

par Maitrepylos » 19 sept. 2018, 12:37

je peux avoir le retour de

Code : Tout sélectionner

<?php require_once "dbconfig.php"; var_dump($bdd);

Re: requête insertion dans 02 tables mysql

par malika014 » 19 sept. 2018, 12:32

j'ai toujours une erreur au niveau de cette ligne

Code : Tout sélectionner

if($stmt->execute())

Re: requête insertion dans 02 tables mysql

par Maitrepylos » 19 sept. 2018, 12:23

Une chose à la fois, exécuter juste la première requête....voir si vous êtes toujours en erreur.

Re: requête insertion dans 02 tables mysql

par malika014 » 19 sept. 2018, 12:15

c'est bien ce que j'ai fais, mais aucune evolution

Code : Tout sélectionner

$stmt = $bdd->prepare ("INSERT INTO lettre_voiture (numero,datelettre,typelettre) VALUES (:numero, :datelettre, :typelettre)"); $stmt->bindParam(":numero", $numero); $stmt->bindParam(":datelettre", $datelettre); $stmt->bindParam(":typelettre", $typelettre); $stmt1 = $bdd->prepare ("INSERT INTO truck (nomclient,nomtransporteur,nomconducteur,immatracteur,immaremorque,natureproduit, essences,quantitecolis,charge,provenance,destination,commentaire) VALUES (:nomclient, :nomtransporteur, :nomconducteur, :immatracteur, :immaremorque, :natureproduit, :essences, :quantitecolis, :charge, :provenance, :destination, :commentaire)"); $stmt1->bindParam(":nomclient", $nomclient); $stmt1->bindParam(":nomtransporteur", $nomtransporteur); $stmt1->bindParam(":nomconducteur", $nomconducteur); $stmt1->bindParam(":immatracteur", $immatracteur); $stmt1->bindParam(":immaremorque", $immaremorque); $stmt1->bindParam(":natureproduit", $natureproduit); $stmt1->bindParam(":essences", $essences); $stmt1->bindParam(":quantitecolis", $quantitecolis); $stmt1->bindParam(":charge", $charge); $stmt1->bindParam(":provenance", $provenance); $stmt1->bindParam(":destination", $destination); $stmt1->bindParam(":commentaire", $commentaire);

Re: requête insertion dans 02 tables mysql

par Maitrepylos » 19 sept. 2018, 12:00

Heu, ce n'est pas ce que j'ai dit ou montré.

Il y a une virgule de trop et il faut mettre : devant chaque joker

exactement comme je l'ai montré.

Code : Tout sélectionner

$stmt = $bdd->prepare ("INSERT INTO lettre (numero,datelettre,typelettre) VALUES (:numero, :datelettre, :typelettre)");

Re: requête insertion dans 02 tables mysql

par malika014 » 19 sept. 2018, 11:14

j'ai remplacé les virgules par les deux points dans les 02 requêtes, j'ai toujours la même erreur.