PHP - Mon algorithme.
arcadenaker
Messages postés
61
Date d'inscription
Statut
Membre
Dernière intervention
-
Pinzou76 Messages postés 614 Date d'inscription Statut Membre Dernière intervention -
Pinzou76 Messages postés 614 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je crée un page de tendances pour des articles et il y a une chose que je n'ai pas su faire.
J'essaye de prendre dans ma BDD mysql l'article qui a le plus de vues.
Ma BDD ( table view_articles):
id -> id de la vue
id_article -> id de l'article vu
compte_view -> compte qui a vu l'article
Mes codes:
Mais après avoir fait cela je me suis dit que cela servait a rien mais je vous l'ai proposé pour au moins vous donner quelque chose et je suis resté à réfléchir pendant 50 minutes puis j'en ai eu marre...
Merci d'avance pour vos propositions
Je crée un page de tendances pour des articles et il y a une chose que je n'ai pas su faire.
J'essaye de prendre dans ma BDD mysql l'article qui a le plus de vues.
Ma BDD ( table view_articles):
id -> id de la vue
id_article -> id de l'article vu
compte_view -> compte qui a vu l'article
Mes codes:
try{ $articles = $db->prepare("SELECT id_article FROM view_articles"); $articles_dec = $id_best->fetchAll(); }catch(Exception $e){ echo " Erreur : " . $e->getMessage(); echo "L'erreur est sur la requete $/articles"; }
Mais après avoir fait cela je me suis dit que cela servait a rien mais je vous l'ai proposé pour au moins vous donner quelque chose et je suis resté à réfléchir pendant 50 minutes puis j'en ai eu marre...
Merci d'avance pour vos propositions
A voir également:
- PHP - Mon algorithme.
- Easy php - Télécharger - Divers Web & Internet
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Expert php pinterest - Télécharger - Langages
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
- Php alert ✓ - Forum PHP
2 réponses
Bonjour,
Ton souci concerne la requête SQL elle même non ? (dans ce cas.. c'est dans le forum Base de données que ta question aurait eu sa place......)
Bref, peu importe...
Ton souci est donc de récupérer l'article qui a eu le plus de vues ? Dans ce cas, en SQL il existe la fonction COUNT qui te permettra de compter le nombre de vues.
A ça, tu ajoutes un ORDER BY DESC et un LIMIT 1 et tu obtiendras ce que tu souhaites.
NB: Pour tester ses requêtes... on le fait via une interface comme Phpmyadmin par exemple et non directement dans son code.
Cela permet de voir que les soucis proviennent de la requête SQL et non du code PHP.
Ton souci concerne la requête SQL elle même non ? (dans ce cas.. c'est dans le forum Base de données que ta question aurait eu sa place......)
Bref, peu importe...
Ton souci est donc de récupérer l'article qui a eu le plus de vues ? Dans ce cas, en SQL il existe la fonction COUNT qui te permettra de compter le nombre de vues.
A ça, tu ajoutes un ORDER BY DESC et un LIMIT 1 et tu obtiendras ce que tu souhaites.
NB: Pour tester ses requêtes... on le fait via une interface comme Phpmyadmin par exemple et non directement dans son code.
Cela permet de voir que les soucis proviennent de la requête SQL et non du code PHP.
, c'est Jordan qui m'a proposé ça
Oulaaaa..... moi je t'ai donné les grandes lignes.... à toi d'utiliser la bonne syntaxe.
Et si tu ne la connais pas, il suffit de faire une recherche avec ton moteur de recherche favori en utilisant les termes que je t'ai donné.
Surtout que si tu avais réellement suivi mes conseils... tu n'essaierais pas tes requêtes dans ton code PHP mais depuis PHPMYADMIN.
Ca t'aurait indiqué une erreur de syntaxe !
Et pour en revenir à ta question.... il manque l'utilisation du COUNT
Un truc du genre
SELECT id_article, COUNT(id_article) as NB_VUES FROM tatable GROUP BY id_article ORDER BY COUNT(id_article) DESC LIMIT 1
mais je dois-je mettre comment le count()?
et j'ai dêja mis ça:
Mais il me renvoie un array() vide. J'avais déjà utilisé la fonction count() mais je sais pas que là il fallait l'utiliser.
je sais que j'ai mal fait quelque chose mais j'ai jamais fait ce genre de chose en php.
Merci de compréhension et merci d'avance pour vos réponses
Il me semble que la syntaxe est plutôt
Il manque la colonne selon laquelle tu veux trier dans l'ordre décroissant ?
Si c'est le cas, fais un SELECT avec tri décroissant sur cette colonne (ORDER BY [nom_de_colonne] DESC) et prends le premier résultat (LIMIT 1)
TABLE: view_articles
id --------- id_article --------- compte_view
1 ------------- 2 ------------------ Frederic
2 ------------- 8 ------------------ Jean
3 ------------- 2 ------------------ Julien
4 ------------- 7 ------------------ Lea
5 ------------- 2 ------------------ Louise
donc dans ce cas l'id de l'article 2 à 3 vues, voila comment marche ma table...