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 :

[SQL] Requête qui montre les 5 pages les plus visitées


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Points : 35
    Points
    35
    Par défaut [SQL] Requête qui montre les 5 pages les plus visitées
    Bonjour,

    Je suis novice en développement php et j'aimerais créer une petite fonction que me permettrait d'afficher la liste de mes 5 pages les plus visitées.
    Cette fonction doit également faire le lien vers les pages.

    Pour le moment j'ai réussi a faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //Fonction TopVisites
    $topvisites = mysql_query("SELECT distinct titre FROM compteur");
    while ($donnees = mysql_fetch_array($topvisites) )
    {
    ?> 
    <?php echo $donnees['titre']; ?><br/> 
    <?php
    Donc pour le moment ma fonction affiche toutes mes pages, je n'en ai pas beaucoup certes mais j'aimerais pouvoir afficher mes 5 pages les plus visitées.

    titre = titre de la page dans ma base de données.
    compteur = c'est le compteur de visites.

    Si quelqu'un pouvait me filer un coup de pouce sa serai génial.
    Merci d'avance.

    // RESOLU // MERCI !!!!

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $topvisites = mysql_query("SELECT distinct titre FROM compteur ORDER BY compteur DESC LIMIT 0, 5");
    Ou quelque chose dans le genre...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Points : 35
    Points
    35
    Par défaut
    Merci beaucoup JWhite !!!
    c'est génial

    Je cherche maintenant comment inclure le lien de la page lors de l'affichage du titre de la page
    Si tu as encore une piste pour moi je suis prenneur

  4. #4
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $topvisites = mysql_query("SELECT distinct titre, lien FROM compteur ORDER BY compteur DESC LIMIT 0, 5");
    Et après tu boucles pour afficher ton lien

  5. #5
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Oui, je suppose que tu as un champ url ou lien dans ta BDD, que tu ajoutes à ton SELECT.

    Ca ferait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<a href="' . $donnees['url'] . '">' . $donnees['titre'] . ' (' . $donnees['compteur'] . ' visites) </a>';
    Par exemple.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Points : 35
    Points
    35
    Par défaut
    merci pour vos répônses
    c'est génial, ca m'a permi d'avance un pas mal

    par contre je bloque sur la syntaxe.
    en effet je dois récupéréer l'id de la page et la mettre apres mapage.php,

    par exemple http://127.0.0.1/mpage.php?pageid=7

    <?php echo '<a href=mapage.php?pageid='.$pageid'>;' ?><br/>

  7. #7
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Mais il sort d'où cet id ?

    Si tu le récupères de l'URL c'est comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo '<a href=mapage.php?pageid='.$_GET['pageid'] . '>;' ?><br/>
    Si il est en base tu le récupères comme les autres champs

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Points : 35
    Points
    35
    Par défaut
    Merci encore pour ta réponse.
    mes pages possèdent un titre, un descriptif et un ID

    le id est un chiffre, 1 ... 2 ... 10 par exemple
    par contre ce que tu m'as donné comme fonction ca ne passe pas
    j'ai une erreur

    Undefined index: pageid in c:\program files\easyphp1-8\www\mapage.php on line 115


    Pourtant la variable est bien définie

  9. #9
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Bon bah alors tu l'ajoutes au SELECT et tu le traites comme tu le fais pour les autres champs, une fois que tu l'as tu en fais ce que tu veux d'autant que tu connais la syntaxe pour transmettre la variable via URL.

    Là je vois pas ce qui bloque

  10. #10
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo '<a href=mapage.php?pageid='.$_GET['pageid'] . '>;' ?><br/>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?php echo '<a href="mapage.php?pageid='.$_GET['pageid'] . '">;' ?><br/>

  11. #11
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Arf j'ai pas fait gaffe à ça bien vu Guitou.
    (j'avais repris le code sans vérifier pas bien )

    mais je crois que l'id sort de la base pas de l'URL...

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Points : 35
    Points
    35
    Par défaut
    Jwhite je comprends pas ce que tu veux me dire, excuse moi, je suis novice
    Merci de ton aide encore une fois.

    Actuellement, j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $topvisite = mysql_query("SELECT distinct titre FROM compteur ORDER BY moncompteur DESC LIMIT 0, 5");
    while ($donnees = mysql_fetch_array($topvisites) )
    {
    ?>
    <?php echo $donnees['titre']; ?>
    <?php echo '<a href=mapage.php?pageid='.$_GET['mapageid'] . '>' ?><br/>
    Ce qui affiche si je suis dans une page mes 5 pages les plus visitées,
    mais un lien identique pour toutes (par contre le titre est bon (page1 . 2 .3 par exemple)

    Le problème visiblement c'est que la variable mapageid prends la valeur de la page en cours et donc, si je suis sur mon index.php, ca plante et ca me met des messages d'erreur.
    Tu aurais une idée ?

    peut etre est ce que j'ai oublié quelque chose ?

  13. #13
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo '<a href="mapage.php?pageid='.$donnees['mapageid'] . '">' ?><br/>

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Points : 35
    Points
    35
    Par défaut
    Merci guitou12, mais ca ne passe pas.
    de plus apres le titre de la page j'ai un ;

    et les liens se sont pas bon non plus
    ils renvoient tous vers la page en cours.

    lorsque je suis sur l'index, j'ai un message le message d'erreur suivant :
    Undefined index: mapageid in c:\program files\easyphp1-8\www\mapage.php on line 116

  15. #15
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Oui parce que dans ton SELECT tu dois rajouter ton champ pageid (si il s'appelle comme ça).

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Points : 35
    Points
    35
    Par défaut
    $donnees['mapageid']
    ben euuu oui mais dans $donnees il n'y a pas cette variable aussi ?

  17. #17
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Remplace 'mapageid' par le nom de ton champ qui contient l'id dans ta table (index, idpage, pageid ... je ne sais pas comment tu l'as nommé moi...)

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Points : 35
    Points
    35
    Par défaut
    ca fait plaisir de voir que quand on ne trouve pas il y a des personnes comme vous pour nous aider !

    Par contre je suis de plus en plus perdu au fur et à mesure de l'avancement du topic et je n'arrive tjrs pas à faire ce que je voulais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $topvisites = mysql_query("SELECT distinct titre FROM compteur ORDER BY visites DESC LIMIT 0, 5");
    while ($donnees = mysql_fetch_array($topvisites) )
    {
     
    ?>
    <?php echo $donnees['titre']; ?>
    <?php echo '<a href="mapage.php?jid='.$idpage ['idpage'] . '">' ?><br/>
    Je ne comprends pas bien comment passer mon 'idpage' dans $topvisites

  19. #19
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT distinct titre, id FROM compteur ORDER BY visites DESC LIMIT 0, 5
    Adapte avec le nom de ton champ en base...

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Points : 35
    Points
    35
    Par défaut
    Merci pour ta patience JWhite.
    Donc dans ma base de données le champ ID s'appel tout simplement ID, la table s'appelle visites et nbvisites est mon champ qui s'incrémente tout seul.

    donc la requete est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT distinct titre, id FROM visites ORDER BY nbvisites DESC LIMIT 0, 5
    .

    Ensuite en php ca donnerai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $topvisites = mysql_query("SELECT distinct titre, id FROM visites  ORDER BY nbvisites DESC LIMIT 0, 5");
    while ($donnees = mysql_fetch_array($topvisites) )
    {
    ?>
    <?php echo '<a href="mapage.php?id='.$donnees]['id'] . '">' ?><br/>
    ca marche, mais il y a une tite erreur à la premiere ligne d'affichage,
    la premiere page n'a pas de lien et la seconde page (ma page 2 par exemple) a pour ID 1 ;(

    peut etre faut il envoyer l'id dans une variable et utiliser cette meme variable ?

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/08/2012, 01h41
  2. [AC-2007] requête qui ne traite pas correctement les données
    Par Oliv'83 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 24/11/2010, 13h07
  3. requête qui permet de voir tout les objets directory
    Par webfranc dans le forum PL/SQL
    Réponses: 2
    Dernier message: 03/03/2009, 11h58
  4. Réponses: 5
    Dernier message: 13/08/2007, 13h44

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