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 :

Perte de l'existence d'un champ


Sujet :

Langage PHP

  1. #1
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut Perte de l'existence d'un champ
    Bonjour,

    Je perds l'existence d'un champ. Dans tous mes programmes je commences de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?
    include("../inc/conf.php");
    include("../inc/fonctions.php");
    include("../inc/verif.php");
    include("../inc/smarty.php");
    conf. est la configuration du site, nom de la base, préfixe des tables, ouverture de la base.

    fonctions. porte bien son nom.

    verif. vérifie les droits du visiteur à être là.

    smarty. ouvre une instance smarty

    Chacun de mes accès à la base de données est syntaxé comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FROM ".$prefixe_table."`t_ville`
    Dans tous mes programmes cela fonctionne très bien.

    Je viens d'en créer un nouveau et là, il me dit

    Notice: Undefined variable: prefixe_table in....
    sur des fonctions que j'utilise déjà dans d'autres programmes.

    Je ne vois pas pourquoi je perds ce préfixe table.

    Une idée ?

    Merci d'avance
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  2. #2
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 853
    Points
    2 853
    Par défaut
    t'a vérifier tes inclusions ?!

  3. #3
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Oui, j'ai mis un :

    Juste après mon include de "smarty" et il n'a pas bronché sur l'absence éventuelle du champ.

    Le traitement est comme ceci juste avant là ou cela se plante

    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
    // Recherche des données
    $req="SELECT *
    	  FROM ".$prefixe_table."t_tiers
    	  WHERE id_tiers='1' 
    	  AND `id_trt`>0 and `id_trt`<5";
    // Initialisation de la lecture avec génération d'un tableau ayant le nom du champ comme index
    $db->setFetchMode(DB_FETCHMODE_ASSOC);
    $requete = $db->getRow($req);
     
    // Message d'erreur
    if (PEAR::isError($requete))
    {
        die($requete->getMessage());
    }
    $cp = getCodePostal($requete["tiers_ville_id"]);
    $nom_ville = getVille($requete["tiers_ville_id"]);
    Et c'est dans mes getCodePostal et getVille que cela plante. Ces 2 fonctions font parties du include de fonctions.php. Ces fonctions fontionnent très bien dans d'autres programmes.

    J'en déduit que le problème est sous mes yeux (ce doit être des ligne hidden, mais chut, j'oses même pas le penser)

    Je n'ai pas d'erreur sur le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     FROM ".$prefixe_table."t_tiers
    de la partie de programme ci-dessus.

    Alors, est-ce grave ?

    Ce sont les yeux, je le sais, mais je n'oses pas me l'avouer
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  4. #4
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 853
    Points
    2 853
    Par défaut
    t'es bien sur que tu regardes dans le bon fichiers ?!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Undefined variable: prefixe_table in....
    ou ca ?

    Si tu as fait un echo et que ca amrche l'erreur ne vient sans doute asp dece fichier

  5. #5
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    C'est que tu m'as fait douté alors j'ai rajouté un
    et j'ai ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    prefixe ! coucou
    Notice: Undefined variable: prefixe_table in
    Ouf, je suis bien dans le bon programme. Quoique j'aurai presque espéré être dans le bon, on aurait trouvé le pourquoi du comment.

    Bon, je vois c'est un casse tête.
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Comme ça juste pour savoir les chemins relatifs sont corrects ?
    Et aussi il est préférable d'utiliser une constante dans ce genre de cas

  7. #7
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Bonsoir Kerod,

    Les chemins relatifs sont corrects puisque les includes se font bien.

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // Recherche des données
    $req="SELECT *
    	  FROM ".$prefixe_table."t_tiers
    	  WHERE id_tiers='1' 
    	  AND `id_trt`>0 and `id_trt`<5";
    ...
     
     $cp = getCodePostal($requete["tiers_ville_id"]);
     $nom_ville = getVille($requete["tiers_ville_id"]);
    Les fonctions "getCodePostal" et "getVille" font partie de "include("../inc/fonctions.php");" du début de programme.

    Et c'est dans le "include" aux lignes 243 et 258, où se trouve respectivement ces 2 fonctions que le message apparaît.

    J'utilise pourtant ces 2 fonctions dans d'autres programmes et je n'ai pas de soucis.

    Y a un shmilili quelque part, là, pas loin, mais où ?
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  8. #8
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Tu as pas dit qu'il y avait une erreur sur $prefixe_table ?
    Pourrais vérifier la requete en faisant un echo (histoire de voir si elle est bonne) ?

  9. #9
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Bon, je l'ai fait pour éliminer toute éventualité

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Notice: Undefined variable: prefixe_table in c:\program files\easyphp1-8\www\gestelle\inc\incTables_tb.php on line 286
    cp : SELECT * FROM `t_ville` WHERE `ville_id`="18703" and `id_trt`>0 and `id_trt`<5
    Notice: Undefined variable: prefixe_table in c:\program files\easyphp1-8\www\gestelle\inc\incTables_tb.php on line 308
    ville : SELECT * FROM `t_ville` WHERE `ville_id`="18703" and `id_trt`>0 and `id_trt`<5
    J'ai pris les requêtes et elles ont bien fonctionnées dans phpmyadmin
    Voici les requêtes :

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    function getCodePostal($code)
    {
    	if ($code>"0")
    	{
    		$req = "SELECT *
    		FROM ".$prefixe_table."`t_ville` 
    		WHERE `ville_id`=\"$code\"
    		and `id_trt`>0 and `id_trt`<5";
    		echo "cp : $req";
    	$result=mysql_query($req) or die ("Lecture code postal impossible");
    	if ($ligne=mysql_fetch_row($result))
    	{
    	return($ligne[1]);
    	}
    	else
    	{
    	echo "Erreur de requête sur la recherche du code postal";
    	}
    	}
    }
     
    // Récupère le libellé de la ville
    function getVille($code)
    {
    	if ($code>"0")
    	{
    		$req = "SELECT *
    		FROM ".$prefixe_table."`t_ville` 
    		WHERE `ville_id`=\"$code\"
    		and `id_trt`>0 and `id_trt`<5";
    		echo "ville : $req";
    	$result=mysql_query($req) or die ("Lecture ville impossible");
    	if ($ligne=mysql_fetch_row($result))
    	{
    	return($ligne[3]);
    	}
    	else
    	{
    	echo "Erreur de requête sur la recherche de la ville";
    	}
    	}
    }
    Je ne vois vraiment pas. D'autant plus que j'appel ces fonctions dans d'autres programmes.

    C'est étrange de chez...

    Y a un fantôme sur mon pc
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  10. #10
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 853
    Points
    2 853
    Par défaut
    un ptit :
    dans ta fonction getCodePostal()

    à lire : http://be2.php.net/global

  11. #11
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    J'ai fait le p'tit

    Et cela c'est planté, j'ai commencé un petit discour dans ce message expliquant la modif, ce que dit le lien que tu m'as donnée, la portée philisophique de ...

    Et puis je me suis rendu compte, que j'avais fait un copier collé de ton "global $prefix_table;"

    Damned ce n'est pas ça, il manque un "e"

    C'est "global $prefixe_table;"

    Refaisons le test vite, vite.

    Youpi tralala, effaçons vite le post en préparation et prosternons-nous devant cet éclat de licidité.

    Merci, merci beaucoup

    Oh vous tous "pensez aux variable" globales"
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  12. #12
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 853
    Points
    2 853
    Par défaut
    lol dsl je l'ai écrit comme je l'ecrit dans mes script

    tu pourra allez dormir tranquile, ton problème est résolu

  13. #13
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Bonne nuit
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

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

Discussions similaires

  1. Tester l'existence d'un champ dans une requête
    Par Reidid dans le forum Access
    Réponses: 3
    Dernier message: 23/01/2006, 22h02
  2. Tester l'existance d'un champ de formulaire .
    Par maxos75 dans le forum ASP
    Réponses: 3
    Dernier message: 21/12/2005, 12h47
  3. Tester l'existence d'un champ dans une table
    Par Oluha dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 05/09/2005, 11h19
  4. existance d un champ dans un formaulaire
    Par ddmonge dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/03/2005, 11h02
  5. Tester l'existence d'un champ
    Par Loko dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/12/2004, 11h26

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