Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/07/2006, 14h48   #1
Invité régulier
 
Inscription : novembre 2004
Messages : 75
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 75
Points : 8
Points : 8
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 :
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 !!!!
plex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 14h59   #2
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Code :
$topvisites = mysql_query("SELECT distinct titre FROM compteur ORDER BY compteur DESC LIMIT 0, 5");
Ou quelque chose dans le genre...
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 15h09   #3
Invité régulier
 
Inscription : novembre 2004
Messages : 75
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 75
Points : 8
Points : 8
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
plex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 15h12   #4
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
Code :
$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
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 15h13   #5
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Oui, je suppose que tu as un champ url ou lien dans ta BDD, que tu ajoutes à ton SELECT.

Ca ferait :

Code :
echo '<a href="' . $donnees['url'] . '">' . $donnees['titre'] . ' (' . $donnees['compteur'] . ' visites) </a>';
Par exemple.
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 15h41   #6
Invité régulier
 
Inscription : novembre 2004
Messages : 75
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 75
Points : 8
Points : 8
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

Citation:
<?php echo '<a href=mapage.php?pageid='.$pageid'>;' ?><br/>
plex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 15h56   #7
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Mais il sort d'où cet id ?

Si tu le récupères de l'URL c'est comme ça :
Code :
<?php echo '<a href=mapage.php?pageid='.$_GET['pageid'] . '>;' ?><br/>
Si il est en base tu le récupères comme les autres champs
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 15h58   #8
Invité régulier
 
Inscription : novembre 2004
Messages : 75
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 75
Points : 8
Points : 8
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
plex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 16h00   #9
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
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
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 16h06   #10
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
Code :
<?php echo '<a href=mapage.php?pageid='.$_GET['pageid'] . '>;' ?><br/>

Code :
1
2
 
<?php echo '<a href="mapage.php?pageid='.$_GET['pageid'] . '">;' ?><br/>
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 16h11   #11
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
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...
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 16h13   #12
Invité régulier
 
Inscription : novembre 2004
Messages : 75
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 75
Points : 8
Points : 8
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 :
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 ?
plex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 16h17   #13
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
Code :
<?php echo '<a href="mapage.php?pageid='.$donnees['mapageid'] . '">' ?><br/>
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 16h17   #14
Invité régulier
 
Inscription : novembre 2004
Messages : 75
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 75
Points : 8
Points : 8
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
plex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 16h19   #15
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Oui parce que dans ton SELECT tu dois rajouter ton champ pageid (si il s'appelle comme ça).
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 16h19   #16
Invité régulier
 
Inscription : novembre 2004
Messages : 75
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 75
Points : 8
Points : 8
$donnees['mapageid']
ben euuu oui mais dans $donnees il n'y a pas cette variable aussi ?
plex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 16h19   #17
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
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...)
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 16h23   #18
Invité régulier
 
Inscription : novembre 2004
Messages : 75
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 75
Points : 8
Points : 8
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 :
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
plex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 16h35   #19
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Code :
SELECT distinct titre, id FROM compteur ORDER BY visites DESC LIMIT 0, 5
Adapte avec le nom de ton champ en base...
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 17h01   #20
Invité régulier
 
Inscription : novembre 2004
Messages : 75
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 75
Points : 8
Points : 8
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 :
SELECT distinct titre, id FROM visites ORDER BY nbvisites DESC LIMIT 0, 5
.

Ensuite en php ca donnerai :

Code :
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 ?
plex est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h19.


 
 
 
 
Partenaires

Hébergement Web