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 :

mysql_fetch_array génère une erreur


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2011
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 73
    Points : 37
    Points
    37
    Par défaut mysql_fetch_array génère une erreur
    voici mon script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $select = "SELECT * FROM browse WHERE nom_wo = '$var' " ; 
     
    $result = mysql_query($select) or die ('Erreur 2: '.mysql_error() );
     
    $row = mysql_fetch_array($result) or die ('Erreur 3 : '.mysql_error() );
     
    $dn=$row['date'];
    echo $dn;
    ça m'affiche Erreur 3

    Merci de bien vouloir m'aider!

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Bonjour (oui sur ce forum on dit bonjour.)

    Ne mets pas de "or die" après mysql_fetch_assoc.

    Tu devrais plutôt procéder comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $query = "SELECT * FROM browse WHERE nom_wo = '$var' " ; 
    if ($result = mysql_query($query)) {
      $row = mysql_fetch_array($result);
      $dn=$row['date'];
    }
    else {
      die('ERROR');
    }

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Ou la requête ne renvoie aucune ligne (FALSE renvoyé par mysql_fetch_[array|assoc|row]). Ce qui n'est pas une erreur en soi (or die n'a pas lieu d'être). Dès lors $row['date'] n'aurait pas réellement à être utilisé sans avoir vérifié ce point non plus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ini_set('mysql.trace_mode', TRUE);
     
    // $var = mysql_real_escape_string(...);
    $result = mysql_query("SELECT * FROM browse WHERE nom_wo = '$var'");
    if (FALSE === ($row = mysql_fetch_array($result))) {
        echo 'Pas de résultat';
    } else {
        $dn=$row['date'];
        // ...
    }

  4. #4
    Expert éminent sénior

    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
    Points : 10 727
    Points
    10 727
    Par défaut
    active le mysql.trace_mode

  5. #5
    Nouveau membre du Club
    Inscrit en
    Août 2011
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 73
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    active le mysql.trace_mode
    comment je fais pour activer ceci ??

  6. #6
    Nouveau membre du Club
    Inscrit en
    Août 2011
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 73
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    Bonjour (oui sur ce forum on dit bonjour.)

    Ne mets pas de "or die" après mysql_fetch_assoc.

    Tu devrais plutôt procéder comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $query = "SELECT * FROM browse WHERE nom_wo = '$var' " ; 
    if ($result = mysql_query($query)) {
      $row = mysql_fetch_array($result);
      $dn=$row['date'];
    }
    else {
      die('ERROR');
    }
    Bonjour!
    j'ai essayé ce code et j'ai rajouté echo $dn pour voir le résultat , mais ça n'affiche rien (

  7. #7
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 887
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 887
    Points : 16 320
    Points
    16 320
    Par défaut
    Et :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $query = "SELECT * FROM browse WHERE nom_wo = '$var' " ; 
    if ($result = mysql_query($query)) {
      if (mysql_num_rows() == 0) {
        echo 'Aucun résultat';
      }
      else {
        $row = mysql_fetch_array($result);
        $dn=$row['date'];
      }
    }
    else {
      die('ERROR');
    }

  8. #8
    Nouveau membre du Club
    Inscrit en
    Août 2011
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 73
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par Bisûnûrs Voir le message
    Et :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $query = "SELECT * FROM browse WHERE nom_wo = '$var' " ; 
    if ($result = mysql_query($query)) {
      if (mysql_num_rows() == 0) {
        echo 'Aucun résultat';
      }
      else {
        $row = mysql_fetch_array($result);
        $dn=$row['date'];
      }
    }
    else {
      die('ERROR');
    }
    ça m'affiche ceci :
    Warning: mysql_num_rows() expects exactly 1 parameter, 0 given in C:\wamp\www\2\fermeture.php on line 21
    :'(

  9. #9
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 887
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 887
    Points : 16 320
    Points
    16 320
    Par défaut
    Oups, pardon ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_num_rows($result)

  10. #10
    Nouveau membre du Club
    Inscrit en
    Août 2011
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 73
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par Bisûnûrs Voir le message
    Oups, pardon ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_num_rows($result)
    Bon voilà, ça m'affiche "aucun résultat " , pourtant ma variable $var est bien définie (récupérée à partir de GET) , j'ai bien vérifié le nom de mes colonnes et de mes tables.

  11. #11
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 887
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 887
    Points : 16 320
    Points
    16 320
    Par défaut
    Et si tu fais un echo de $query ça te donne quoi ?

    Au passage, si $var provient effectivement de $_GET, il ne faut pas oublier de se protéger contre les injections SQL.

  12. #12
    Nouveau membre du Club
    Inscrit en
    Août 2011
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 73
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par Bisûnûrs Voir le message
    Et si tu fais un echo de $query ça te donne quoi ?

    Au passage, si $var provient effectivement de $_GET, il ne faut pas oublier de se protéger contre les injections SQL.
    ça me donne ceci :
    SELECT * FROM browse WHERE nom_wo = ' listeapresothers.txt'

    où $var=listeapresothers.txt

  13. #13
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 887
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 887
    Points : 16 320
    Points
    16 320
    Par défaut
    Et pourtant, tu as l'air d'avoir un espace au début de ta variable.

  14. #14
    Nouveau membre du Club
    Inscrit en
    Août 2011
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 73
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par Bisûnûrs Voir le message
    Et pourtant, tu as l'air d'avoir un espace au début de ta variable.
    c vrai! je sais pas d'où ça vient. le nom de la variable à l'origine n'inclut pas d'epace au début! comment je peux le supprimer??

  15. #15
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 887
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 887
    Points : 16 320
    Points
    16 320
    Par défaut
    Regarde trim().

  16. #16
    Nouveau membre du Club
    Inscrit en
    Août 2011
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 73
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par Bisûnûrs Voir le message
    Regarde trim().
    ouaiis!! ça a marché !! merciiiiiii bcp !

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

Discussions similaires

  1. Source du fichier plat : trop de ligne génère une erreur
    Par Monico dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/08/2007, 16h04
  2. Exécutable qui génére une erreur windows
    Par jouidos dans le forum Windows Forms
    Réponses: 4
    Dernier message: 22/01/2007, 15h50
  3. .lib qui génère une erreur au link
    Par mrshadow dans le forum VC++ .NET
    Réponses: 2
    Dernier message: 19/01/2007, 10h47
  4. [VB6] Problème de textbox multiligne qui génére une erreur
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 20/02/2006, 16h21
  5. [SGBD] mysql_fetch_array provoque une erreur
    Par nicerico dans le forum Requêtes
    Réponses: 6
    Dernier message: 06/10/2005, 14h20

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