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 :

Notice: Undefined variable après un require [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 45
    Par défaut Notice: Undefined variable après un require
    Bonjour, le titre n'est pas très clair mais mon problème est : J'ai une fonction (public static) dans une classe (maclasse.class.php), je déclare une variable par exemple dans ma classe Après avoir fais un beau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require(dirname(__FILE__) . 'maclasse.class.php');
    dans un autre fichier
    J’essaye de faire un simple dans ce dernier fichier. Mais j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Undefined variable: test in ...
    Par contre si je déclare cette même variable avant l'ouverture de maclasse, ça fonctionne.
    Merci d'avance

  2. #2
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    Tu peux nous donner le message de l'erreur en entier stp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Notice: Undefined variable: resultats in ...
    C'es pas clair comme erreur, ...

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 45
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Undefined variable: test in ...
    C'est tout ce qu'il y a comme message d'erreur les ... remplacent le chemin de mon fichier (celui dans lequel je fais l'echo de la variable) ainsi que la ligne 21 c'est à dire :

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    montre ton fichier maclasse.class.php

  5. #5
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Ok je préfére avec le message d'erreur en dernier
    Notice: Undefined variable: test in ...
    C'est pour celà que je t'avais demandé plus ...

    Sinon tu as l'utilité de public static pour la fonction car elle a un comportement particulier. En plus c'est pas très clair:
    J'ai une fonction (public static) dans une classe (maclasse.class.php), je déclare une variable par exemple
    Enfin pour moi c pas très clair

    ta variable, elle est déclarée dans la fonction ou dans la class car si dans fonction c normal ...

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 45
    Par défaut
    voilà :
    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
    <?php
     
    Class Classe
    	{
     
    		private $numcclass;
    		private $nombre;
     
     
    		public function __construct(num, nbr)
    			{
                    $this-> numclasse=$num;
                    $this-> nombre=$nbr;
    				$this-> numtva=$tva;
     
    			}			
    		//accesseurs
    		public function getnumclasse (){
    			return $this->numclasse;		
    		}
    		public function getnombre (){
    			return $this->nombre;		
    		}
            public static function chercheecheance ($value){
    		$bd=mysql_connect(localhost,root,'') or die("Connexion échouée");
    mysql_select_db(test,$bd) or die("La base ne peut etre selectionnée");
            	$resultats = Array();
            	$test = "TEST";
     
            	$req = "ma requete WHERE exemple =$value";			
     
    			$resultat = mysql_query($req);
    			while($row = mysql_fetch_assoc($resultat)) {
     
    				echo $row['champs1'],"<br />";
    				$resultats[] = $row['champs1'];
    			}
    			echo $resultats[0].'-'.$resultats[1];
           } 
     }
    ?>
    @ Fench j'ai essayé de la déclarer dans la fonction ou dans la classe, aucun résultat dans les deux cas. Ce que je souhaite faire à la base c'est récupérer le résultat d'une requête dans la fonction sous forme de tableau pour faire un autre traitement pour chaque champs avec un foreach dans un autre fichier, j'appel ma fonction comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Classe::chercheecheance(une valeur)

  7. #7
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bon bein voir mon message d'avant, ta variable est déclarée dans ta fonction, elle ne sera pas visible autre part d'ou ton message ...

  8. #8
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    C'est pas juste, tu as édité ton message pendant que je répondais

    Bon bein sinon dans ta fonction, tu fais un retour:
    Si j'ai bien compris, pour faire un traitement.

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 45
    Par défaut
    D'accord merci, je test ça . Je mets le return à la fin ?
    EDIT : une derniere chose je ne comprends pas à quoi correspond la valeur $a par exemple dans un foreach : tel que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php foreach ($tableau as $a) {
     
     
    }
    ?>
    on est obligé de la renseigner ?

  10. #10
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Imagines que tu as $tableau={'toto', 'titi', 'tata'} et bien à chaque tour de boucle tu auras $a='toto' puis 'titi' et enfin 'tata' ...

    Plus d'infos regardes le manuel php en ligne

  11. #11
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 45
    Par défaut
    J'ai mis le return $resultat à la fin de ma fonction mais le foreach($resultat as $a)
    me retourne une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: Invalid argument supplied for foreach() in
    . Si je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (isset($resultats)) {
     
     
    else {
    echo "Aucun résultat";
    }
    Bah j'ai : "Aucun résultat".

  12. #12
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920

  13. #13
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 45
    Par défaut
    J'ai déjà lue cette doc mais j'ai pas trouvé comment remédier à mon problème.

  14. #14
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Déjà par rapport à ta fonction, c'est return $resultats car $resultat c'est la ressource ...

    De même je suppose que dans le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $req = "ma requete WHERE exemple =$value";
    C'est une expression pour alléger le code pour notre compréhension car sinon c'est pas bon ...

  15. #15
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 45
    Par défaut
    Oui en effet.
    Par contre mon but est d'envoyer un mail via PHPmailer à chaque tour de boucle de foreach en récupérant l'adresse mail dans le $resultats. J'ai toujours le message d'erreur de mon message precedent mais j'ai reçu le mail dans ma boite mail. Je vais devenir fou

    EDIT : Fausse joie c'était le mail d'un autre test.

  16. #16
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par PooSoft Voir le message
    J'ai déjà lue cette doc mais j'ai pas trouvé comment remédier à mon problème.
    il faut déclarer la variable en global pour l'utiliser or d'une classe/fonction

  17. #17
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 45
    Par défaut
    Merci beaucoup, l'echo test "je suis dans la boucle foreach" vient d'apparaitre deux fois ( j'ai deux résultats) !!

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

Discussions similaires

  1. [MySQL] Notice: Undefined variable: prenom in c:\documents and settings\stagiaire10\mes docum
    Par fofina dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 15/10/2007, 00h18
  2. Notice: Undefined variable: id in
    Par dynam dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 11/09/2007, 17h12
  3. Notice: Undefined variable
    Par oranoutan dans le forum Langage
    Réponses: 19
    Dernier message: 21/12/2005, 22h28
  4. Notice: Undefined variable
    Par kayn dans le forum Langage
    Réponses: 2
    Dernier message: 03/10/2005, 20h44
  5. Réponses: 3
    Dernier message: 22/09/2005, 11h24

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