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 :

compter des éléments


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Points : 12
    Points
    12
    Par défaut compter des éléments
    Je voudrais de l'aide, je suis débutant en php.
    Il faut que je compte le nombre d'ip identique dans une base et ce bout de programme ne fonctionne pas.

    . $_SERVER['REMOTR_ADDR'] : est l'adresse de l'internaute en ligne.

    referer : la table ou sont inscrits les "ip"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $retour = mysql_query("SELECT COUNT(*) AS nbre_entrees FROM test WHERE ('".$_SERVER['REMOTR_ADDR']."') = 'referer'");
    $donnees = mysql_fetch_array($retour);
    echo $donnees['nbre_entrees'];
    Merci de vos réponses
    Cordialement.

  2. #2
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    salut,
    ce bout de programme ne fonctionne pas
    As-tu un message d'erreur?

  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
    Les parenthèses sont probablement de trop. Dans de tels cas il est recommandé d'accoler à la fonction mysql_query la condition suivante : or die(mysql_error());. Ce qui vous donne au final :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $retour = mysql_query('SELECT ... FROM ... WHERE ...') or die(mysql_error());
    Vous saurez tout de suite s'il y a une erreur dans la requête et à peu près où. Vous serez quitte de la chercher ailleurs (je pense à tout ceux qui rencontrent l'erreur de type 'supplied argument is not a valid MySQL result resource').

  4. #4
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    le die est plutôt violent le client n'a pas à se retourver avec une page planté parceque le script n'a pas executer corectement une requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $SQL = "SELECT COUNT(1) AS nbre_entrees
    FROM test
    WHERE referer = '".$_SERVER['REMOTR_ADDR']."';";
    $retour = mysql_query($SQL);
    $donnees = mysql_fetch_array($retour);
    echo $donnees['nbre_entrees'];
    je sais que toute la littérature donne cette syntaxe mais ça ne sert à rient de remonter toutes les données pour les compter donc SELECT COUNT(1) et non SELECT COUNT(*)
    je sais que sur les petites base mysql ça change rien ou presque mais c'est une bonne habitude à prendre dès le début. imaginez une base avec quelques dixainnes de tables de plusieurs millons d'enregistrements que vous joignez pour faire un count

    bon pour ce qui est du pb proprement dit
    la syntaxte est WHERE (monchamp = 'mavaleur') et pas
    WHERE monchamp = ('mavaleur') donc soit pas de parentèses soit bien les placer
    et enfin le nom du champ ne doit pas être quotté on peut lui metre des backquotes ‘ ou des double quotes " mais pas des quotes '
    Le mieux est de ne rien mettre

    enfin par convention on ecrit colonne='valeur' et pas 'valeur'=colonne ça ne change rien mais ça facilite la lecture

    Voilà
    A+JYT

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Points : 12
    Points
    12
    Par défaut Toujours le même problème
    Bonjour,
    Merci de vos conseils, se petit bon de code est vraiment un problème, le résultat de l'addition de tous IP est 0
    Pourtant il y a plusieurs IP identiques dans la base.
    Cordialement

Discussions similaires

  1. [Débutant] Compter des éléments récurents, stocker ces nombres
    Par Invité dans le forum Linq
    Réponses: 1
    Dernier message: 03/05/2013, 14h17
  2. Compter des éléments graphiques
    Par renovatio34 dans le forum C#
    Réponses: 1
    Dernier message: 25/04/2012, 00h13
  3. Compter des éléments
    Par piero53 dans le forum Langage SQL
    Réponses: 13
    Dernier message: 25/09/2009, 22h50
  4. Compter des éléments selon une condition
    Par oli43 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 26/08/2009, 11h47
  5. Compter des éléments d'une liste
    Par Mantor dans le forum Prolog
    Réponses: 5
    Dernier message: 02/05/2007, 18h40

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