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 ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 20
    Par défaut Notice: Undefined variable ?
    Bonjour à tous.
    Voilà le soucis.

    Notice: Undefined variable: newtxt in C:\wamp\www\didier\var\www\flu\nouveautes.php on line 75

    Voici le code :

    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
     
    // requête SELECT allText
    $requete = "SELECT newtxt FROM table_new";
    $envoi = mysql_query($requete) or die('Erreur SQL !'.$envoi.''.mysql_error());
            while($ligne = mysql_fetch_array($envoi))
            {
             $newtxt = $ligne["newtxt"];
            }
    ?>
    <tr>
    <td height="637" align="center" valign="top" background="img/bg_nouveautes.jpg"><div align="center"><span class="textegras">Découvrez en exclusivité nos nouveautés.</span><br /> 
    <br />
    </div>
    <table width="600" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
    <td width="801" colspan="5" align="center" valign="top"><img src="img/essensity.jpg" width="600" height="448" /></td>
    </tr>
    <tr>
    <td colspan="5" align="center" valign="top" class="menu"><?php echo $newtxt; ?></td>
    La partie incriminée étant ( la ligne 75) : <?php echo $newtxt; ?>

    Mais ou est mon erreur, je ne comprends plus rien.

    MErci mille fois pour votre aide
    Ben

  2. #2
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    Salut,
    Es-tu sûr que ta requete renvoie au moins 1 tuple ?
    Z.

  3. #3
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    Bonjour,

    la réponse est dans la question...
    Undefined variable: newtxt
    il suffit d'initialiser la variable avant de l'utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // requête SELECT allText
    $newtxt = "";
    $requete = "SELECT newtxt FROM table_new";
    mais visiblement la requete ne ramene rien, ou ton code ne sait pas gérer un retour vide...


  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 20
    Par défaut
    Bonjour,

    Oui, la réponse est bien dans la question mais je n'arrive pas à trouver ce qui ne va pas.
    La requête à rien et je ne vois pas l'erreur que je commet.

    // ou ton code ne sait pas gérer un retour vide //

    Et comment vérifier cela ?

    Merci pour votre aide, dans l'attente de vous lire

    (cela fait plus de 3 ans que je n'avais pas mis le nez dans le PHP, c'est pas comme le vélo, on perd beaucoup sans pratique..Merci pour indulgence)

    Bénédict



    Citation Envoyé par ska_root Voir le message
    Bonjour,

    la réponse est dans la question...


    il suffit d'initialiser la variable avant de l'utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // requête SELECT allText
    $newtxt = "";
    $requete = "SELECT newtxt FROM table_new";
    mais visiblement la requete ne ramene rien, ou ton code ne sait pas gérer un retour vide...


  5. #5
    Membre éprouvé
    Avatar de flo.87
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Par défaut
    Remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_fetch_array($envoi)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_fetch_assoc($envoi)
    sinon ton tableau ne contient que des index numériques

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 20
    Par défaut
    Merci beaucoup,

    Aucun changement...

    Il me faut trouver une autre solution pour permettre à partir de la page admin apporter les modifications texte...



    Citation Envoyé par flo.87 Voir le message
    Remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_fetch_array($envoi)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_fetch_assoc($envoi)
    sinon ton tableau ne contient que des index numériques

  7. #7
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    mysql_fetch_array($envoi) retourne un tableau associatif ET un tableau indexé (options par defaut)

  8. #8
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    Citation Envoyé par flo.87 Voir le message
    sinon ton tableau ne contient que des index numériques
    non non, l'utilisation de cette fonction sans parametres de type de retour retourne par defaut MYSQL_BOTH soit 2 tableaux indexés.

    il faut tester la requete générée (genre dans phpMyAdmin) si possible afin de voir ce qui est retourné, la requete n'est peut-être pas bonne...

    puis on peut aussi implémenter le code d'un test sur le retour pour afficher un message "pas de résultat" c'est mieux qu'une exception...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if(!$envoi) echo "requete invalide";
    if(mysql_count_rows($envoi) < 1) echo "pas de résultat";
     
    // on peut aussi afficher le resultat complet
    $res= mysql_fetch_array($envoi);
    echo "<pre>";
    print_r($res);
    echo "</pre>";

  9. #9
    Membre éprouvé
    Avatar de flo.87
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Par défaut
    Autant pour moi, je n'avais pas vu la valeur par défaut.

  10. #10
    Membre chevronné
    Avatar de djayp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 295
    Par défaut
    Citation Envoyé par rota44 Voir le message
    // ou ton code ne sait pas gérer un retour vide //

    Et comment vérifier cela ?
    Salut !
    C'est la fonction mysql_num_rows() (et non mysql_count_rows) qui va compter le nombre de résultats de ta requête. Si elle renvoie 0, alors il est normal que ta variable ne soit pas initialisée.

    A++

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