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

PHP & Base de données Discussion :

réponse vide alors que le champs existe dans la table, sans retour d'erreur [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 214
    Points : 169
    Points
    169
    Par défaut réponse vide alors que le champs existe dans la table, sans retour d'erreur
    bonjour, mon problème se résume au titre, je ne comprends pas d'où cela peut venir!
    le topo :
    -je confectionne un site sur lequel on pourra à terme passer des commande(cette partie marche correctement) une fois la commande enregistrer, je demande dans mon code d'afficher un récapitulatif de la commande (la par contre sa pose problème)

    le problème : j'exécute une requête de sélection dans la base de données requête qui me semble correcte, mais elle ne me retourne rien ni valeur ni erreur !!

    le code :
    voici ma fonction d'éxécution SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    function Fonc_AccesBDDRequete($LaRequete)
    	{
    	//Cx au Servuer Mysql
           //pour des résond de sécurité le login et le mot de passe on été remplacer (toute mes autres requêtes passe par cet page via un require("chemin/nompage.php") et elle marche correctement.
    		mysql_connect("localhost","login","MDP") or die ("erreur de Connexion au serveur mysql : localhost");
    	//Selection de la BDD "testsitejc_com_1"
    		mysql_select_db("testsitejc_com_1") or die ("erreur de la selection de la BDD : testsitejc_com_1");
    	//interogation de la BDD à l'aide de la requête passé en paramètre
    		$RetourRequete = mysql_query($LaRequete) or die ("Erreur SQL !
    		<br><br>".$LaRequete."<br><br>".mysql_error());
    	//fermeture de la Cx
    		mysql_close();
    	//retour de Fct°
    		return($RetourRequete);
    	}
    et le bout de code qui me pose problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    $TauxTVA = 0.055;
    $somme=0;
    		for($i=1;$i<=$Cpt;$i++)
    		{
    			$CodeCat=$Achats[4][$i];
    			$CodeArt=$Achats[3][$i];
    			$Qte=$Achats[2][$i];
    			$PU=$Achats[1][$i];
    			$Cond=$Achats[5][$i];
    			$somme=$somme+$Qte*$PU;
    			$TVA=$somme*$TauxTVA;
    			$SelDesignationArt="SELECT Designation FROM t_articles WHERE CodeCategorie='$CodeCat' AND CodeArticle=$CodeArt;";
    			$RetSelDesignationArt==Fonc_AccesBDDRequete($SelDesignationArt);
    			if(mysql_num_rows($RetSelDesignationArt)!=0)
    			{
    			$DesignationArt=mysql_fetch_object($RetSelDesignationArt);
    			$DesArt=$DesignationArt->Designation;
    						
    			echo "<p>". $Qte ." x " .$DesArt." à ".$PU."€ ".$Cond." ; soit " .$Qte*$PU."€ HT</p><BR>";
    			}
    			else
    			{
    				echo "DroiteSaveCommande : $SelDesignationArt<BR>";
    			}
    		}
    ?>
    		<HR><BR>
    		<p>Soit un total de <?php echo $somme ?> € HT</p>
    		<HR><BR>
    
    		<p> plus la TVA 5,50% : <?php echo $TVA ?> €</p>
    		<p>Cela nous fait donc un total de <?php echo $somme+$TVA ?>€ TTC</p>
    en faite sa marche sans le if mit en valeur dans le code, le pb c'est que la phrase en orange (dans ce if) ne m'affiche pas l'article qui concerne la ligne
    par exemple au lieux de
    10x Choux Vert à 3€ le colis ; soit 30€ HT
    il m'affiche
    10x à 3€ le colis ; soit 30€ HT
    mais si tu as commander plusieurs articles tu est proprement b***** car c'est cette page qui servira de bon de commande pour l'acheteur!

    l'article existe bien dans ma table, mais ma requête est vide

    le nom de ma table + ses champs (copier depuis la partie administration du compte mysql de mon hébergeur :
    t_articles => CodeCategorie char(3) ; CodeArticle smallint(6) ;Famille varchar(20) ; Designation text ; UrlPhoto varchar(50) ; PrixUnitaire float ; Conditionnement tinytext
    $Achats est une variable Session
    voilà j'espert que l'on réussira à régler ce problème!

  2. #2
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    CodeCategorie='$CodeCat' AND CodeArticle=$CodeArt;
    As-tu essayé sans les quotes sur le premier critère ou avec sur le deuxième ?

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 214
    Points : 169
    Points
    169
    Par défaut
    comme dit dans le résumé de ma table, le premier critère est 3 caractère donc nécessiter de quottes, et sans il y a retour d'erreur!
    le second critère est un chiffre (en auto incrément donc unique et dépendant de la catégorie) donc les quottes sont superflue, la requête passe sans erreur mais le problème persiste

  4. #4
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    Enlève le mysql_close dans ta fonction, je pense que ton pb vient de là.

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 214
    Points : 169
    Points
    169
    Par défaut
    après test le problème persiste de plus le mysql_close() est nécessaire (il me semble) si tu fait appel à plusieurs fonction dans ta page histoire qu'a chaque requête que tu exécute tu ouvre une connexion avec la base de données puis une fois le résultat sauvegardé, tu la referme! si c'est pas nécessaire, c'est au moins plus propre ^^

    il n'y a que si tu travail en local avec easyphp (dumoins c'est le seul que j'ai tester) que sa te génère une erreur.

    de plus il n'y a que sur cette reqête que sa plante toutes les autres passe bien et elle passe toute par cette fontion

  6. #6
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    Question perfomances, il vaut mieux ouvrir ta connexion au début de ton script et la femer à la fin.

    vérifie la valeur de ta variable $CodeCat avant la requête et après pour voir.

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 214
    Points : 169
    Points
    169
    Par défaut
    oui mais question gain de place j'ai ma fonction sur une autre page sa m'évite de faire des copier coller à tout va
    ensuite les valeurs sont correct (j'ai afficher la requête avant de poster pour voir si le problème ne venait pas de là c'est pour sa que j'ai dit au dans mon premier post je cite "...requête qui me semble correcte,..." j'avais vérifié dans ma table les valeurs qui étaient afficher par rapport au produit qui devait être mis dans la phrase

  8. #8
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    essaie ta requête dans phpmyadmin si tu as.

    Je suis tout à fait d'accord avec toi mais sache que mysql_close() s'effectue automatiquement à la fin de l'éxécution de ton script. Par contre, je persiste à dire que ouvrir/fermer ta connexion à chaque requête n'est pas une solution de perfomance.

    Et le code ne fonctionne toujours pas en enlevent le mysql_close()?

  9. #9
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 214
    Points : 169
    Points
    169
    Par défaut
    non le problème persiste!
    avec phpMyadmin la requête fonctionne correctement donc elle est bonne
    sa veux dire que j'ai une couille dans le patté!!

    [EDIT]
    Bon ben j'ai trouver l'erreur et je l'ai mise en valeur (gras et rouge) dans le code du début et la voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $RetSelDesignationArt==Fonc_AccesBDDRequete($SelDesignationArt);
    j'avais fais une instentiation avec "==" au lieu de "=" ma main à du trambler sur la touche lol
    bon ben désoler du dérangement et merci a vous!

    [/EDIT]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Savoir si un champ existe dans une table
    Par Guns Of The Patriots dans le forum VBA Access
    Réponses: 5
    Dernier message: 08/03/2010, 10h30
  2. [MySQL] Requête d'un champ vide alors que dans la base ce champ est non vide
    Par lex_22 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 18/04/2008, 23h29
  3. Réponses: 1
    Dernier message: 13/01/2008, 21h02
  4. [VBA Access] Champ texte null alors que l'objet existe bien.
    Par Caroline1 dans le forum VBA Access
    Réponses: 9
    Dernier message: 28/03/2006, 17h31
  5. est ce que un champs existe dans la base?
    Par cha_cha dans le forum Langage SQL
    Réponses: 9
    Dernier message: 03/10/2005, 11h25

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