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 :

message erreur indésirable sur requete mySQL [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Octobre 2006
    Messages : 233
    Points : 122
    Points
    122
    Par défaut message erreur indésirable sur requete mySQL
    Hello,

    voila mon probleme : c'est a propos de mon site en php :
    dans mon index.php, j'inclus avant un statistiques.php qui a pr mission de me récupérer les stats du site : nbre inscrits, nbre visiteurs,...etc puis à la suite tjs ds l'index.php, l'inclu le reste de l'affichage. En outre je test si les valeurs des statistiques existe avec des isset et fixe comme valeurs "???" pr l'affichage. Mais je voudrai qu'il y est aucun message d'erreur si la connexion à la base ou la requete échou :
    je joint le code source de statistique

    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
     
    <?php
     
     
    print('<body bgcolor="#336699" text="#FFFFFF" link="#FFFFFF"
    vlink="#FFFFFF" alink="#FFFFFF" >');
     
    //connexion BDD : un seul essai
    include "config.php";  //coordonnée serveur hébergeur
    @mysql_connect($host,$login,$pass);
     
     
    //Sélection de la base de données
    Mysql_select_db('data');
     
     
    //récupération valeur de la table "statistiques"
    $requete="SELECT * FROM statistiques";
    $valeur=mysql_query($requete);
    $tableau=mysql_fetch_array($valeur);
     
     
     
    if (mysql_affected_rows()<>0) //si pas d'erreur
    {
    $nbre_visites=$tableau['compteur_visites'];
    $nbre_inscrits=$tableau['nbre_inscrits'];
    }
     
    ?>
    voila

  2. #2
    Membre averti Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Points : 301
    Points
    301
    Par défaut
    si tu veux faire rapide mais pas propre ... ajoute un '@' devant toutes les fonctions mysql que tu utilises...


    comme celle la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @mysql_connect($host,$login,$pass);

  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 778
    Points
    17 778
    Par défaut
    Cela dit si l'erreur est suffisamment grave, inutile de poursuivre l'exécution du script : si c'est une requête on peut l'ignorer en revanche si cette erreur se produit sur mysql_connect inutile de chercher à ensuite faire des requêtes ... Testez autant que possible les valeurs renvoyées par ces fonctions puisqu'elles vous retournent false en cas d'erreur.

  4. #4
    Membre régulier
    Inscrit en
    Octobre 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Octobre 2006
    Messages : 233
    Points : 122
    Points
    122
    Par défaut suite
    en fait cest juste pr l'affichage nbre visiteur et d'inscription lors de l'affichage de la page principale donc c'est pas grave si il y a erreur. Bien sur tout mais même requete prennenet en compte l'erreur et se reexécute plusiseurs fois en cas d'echec (5 fois)!

    Mais même avec le @ comme on pe voir ds mon code source il y a erreur et je sé pas pourquoi???

    Si ta une autre idée, et merci pr ta réponse quand même!

  5. #5
    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 778
    Points
    17 778
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (mysql_affected_rows()<>0)
    mysql_affected_rows ne s'applique que sur le résultat de requête de type DELETE, INSERT, UPDATE ou REPLACE. Dans le cas d'une requête SELECT, mysql_num_rows serait plus adéquate.

    De plus, il y a confusion : une requête peut ne pas renvoyer d'enregistrements (table vide, la condition est erronée, ...), ce qui n'est pas synonyme d'erreur, bien au contraire. Une erreur se caractérisera, bien souvent, par le retour de la valeur FALSE lors de l'utilisation des fonctions mysql_* (c'est plus ou moins ce que j'ai déjà dit).

    Citation Envoyé par kuja2053
    Mais même avec le @ comme on pe voir ds mon code source il y a erreur et je sé pas pourquoi???
    Quel est-il ? Si la connexion n'a pu être effectuée, ce sont certainement les autres fonctions MySQL qui ne peuvent fonctionner et vous renvoient alors des erreurs. Ceci a été soulevé par max44410.

    Citation Envoyé par kuja2053
    Bien sur tout mais même requete prennenet en compte l'erreur et se reexécute plusiseurs fois en cas d'echec (5 fois)!
    il faudrait régler le problème en amont (serveur inadapté à vos besoins ?)

  6. #6
    Membre régulier
    Inscrit en
    Octobre 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Octobre 2006
    Messages : 233
    Points : 122
    Points
    122
    Par défaut suite
    Même avec du retard, je remercie pour vos conseils. En fait, pour les 5 tentatives à chaque fois, c'était par extrème précaution car je ne l'avais testé que sur EasyPHP mais en fait c'est de loin inutile!! lol
    @+

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

Discussions similaires

  1. Erreur 145 sur table mysql
    Par ramses83 dans le forum Requêtes
    Réponses: 1
    Dernier message: 06/09/2007, 21h09
  2. [SQL] Erreur repetitive sur requete SQL (Count et Sum)
    Par hools dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/06/2007, 11h57
  3. erreur de syntaxe requete mysql
    Par LaFik dans le forum Débuter
    Réponses: 1
    Dernier message: 18/09/2006, 14h23
  4. erreur sur requete mysql
    Par gretch dans le forum Requêtes
    Réponses: 6
    Dernier message: 03/08/2006, 11h47
  5. aide sur requete mysql
    Par digger dans le forum Langage SQL
    Réponses: 8
    Dernier message: 14/01/2006, 10h54

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