IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Non exécution d'une requete


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    447
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 447
    Par défaut Non exécution d'une requete
    J'ai créer une fonction excutant des requete et retrournant une requete de mise à jour que je parviens a afficher mais qui ne s'exécute pas.
    Si je copie cette requte pour l'exécuter a la main dans Mysql, je n'ai pas de soucis .....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
      function CalculFraisLivraison($IdPanier,$FraisLivr,$link){
     		  // Création des articles du panier dans la commande
    		  $AffInfoMonPanier = "SELECT ID_PANIER,ID_ADD_LIVRAISON,FRAIS_LIVRAISON,QTY,QTY_TONNE_TOTAL,TARIF FROM PANIER WHERE ID_PANIER = '".$IdPanier."';";
    		  $resultMonPanier = mysqli_query($link, $AffInfoMonPanier);
    		  While ($row = mysqli_fetch_array($resultMonPanier, MYSQLI_NUM)){
    				$IdPanier = $row[0];
    				$TarifLivraison = $row[2];
     
    			}
    		return $CalculFraisLivraison = "UPDATE PANIER SET FRAIS_LIVRAISON = '".$FraisLivr."', MONTANT_FRAIS_LIVRAISON = '".$TarifLivraison."' WHERE ID_PANIER = '".$IdPanier."'";
     	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        	$CalculFraisLivraison = CalculFraisLivraison($IdPanier,$FraisLivr,$link);
        	echo $CalculFraisLivraison;
        	$result = mysqli_query($link, $CalculFraisLivraison);

  2. #2
    Membre éclairé
    Inscrit en
    Janvier 2010
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 59
    Par défaut
    Donc quand tu fais un echo de la requête et que tu la copie/colle elle fonctionne ? Si c'est le cas, ce n'est pas la requête.
    Pourquoi tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = mysqli_query($link, $CalculFraisLivraison);
    et pas simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysqli_query($link, $CalculFraisLivraison);
    Vu que ce n'est qu'une update ? et que tu ne cherches pas à afficher ?

  3. #3
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Si je copie cette requte pour l'exécuter a la main dans Mysql, je n'ai pas de soucis .....
    Oui, mais as tu remarqué que la donnée a été mise à jour ?
    C'est à dire, est ce que la valeur de FRAIS_LIVRAISON ou/et de MONTANT_FRAIS_LIVRAISON ont été modifiés ?

    Ici, la requête peut tout à fait s'exécuter correctement, mais visuellement rien a inchangé car elles avaient les mêmes valeurs, donc les données seraient "écrasées" par leur même valeurs.
    Ou sinon la valeur ID_PANIER ne correspond à aucune ligne, donc aucune mise à jour, mais la requête à tout de même été exécutée.


    Puis si tu as déjà exécuter la requête plusieurs fois, ou manuellement, alors on peut supposer que tu est déjà dans le 1er cas ci-dessus.


    Donc exécuter la requête dans PhpMyAdmin c'est une chose, mais il faudrait faire un select sur cette ID, releverer les valeurs, et ensuite vérifier si elles sont modifier dans le cas où elles devraient l'être.

    D'ailleurs, rajouter une date (genre datetime) permettra plus facilement de s'en rendre compte.


    Puis si la requête comportait une erreur de syntaxe, il devrait avoir un retour d'erreur.
    Tu pourrais éventuellement rajouter un or die( mysqli_error()), sait on jamais.

  4. #4
    Membre éclairé Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 274
    Par défaut une idée sans doute déjà vue
    Quand tu ré écris ta requête tu oublis le point virgule à la fin de la requête.
    Quand on copie à la main dans phpmyadmuin, la plus part du temps il s'en fiche et complète de lui même.
    Mais, PHP n'en fait rien !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "UPDATE PANIER SET FRAIS_LIVRAISON = '".$FraisLivr."', MONTANT_FRAIS_LIVRAISON = '".$TarifLivraison."' WHERE ID_PANIER = '".$IdPanier."'";
    donnerait donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "UPDATE PANIER SET FRAIS_LIVRAISON = '".$FraisLivr."', MONTANT_FRAIS_LIVRAISON = '".$TarifLivraison."' WHERE ID_PANIER = '".$IdPanier."';";

Discussions similaires

  1. Non exécution d'une méthode repaint()
    Par Flophx dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 05/05/2006, 18h04
  2. [VB6] exécution d'une requete Insert dans oracle 9.2
    Par krest dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/04/2006, 13h28
  3. Réponses: 3
    Dernier message: 28/02/2006, 17h52
  4. Réponses: 6
    Dernier message: 26/07/2005, 10h20
  5. Réponses: 9
    Dernier message: 20/06/2005, 12h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo