PHP - Mon algorithme.
                    
        
     
             
                    arcadenaker
    
        
    
                    Messages postés
            
                
     
             
            62
        
            
                                    Statut
            Membre
                    
                -
                                     
Pinzou76 Messages postés 750 Statut Membre -
        Pinzou76 Messages postés 750 Statut Membre -
        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
- Algorithme application pc - Télécharger - Édition & Programmation
- Algorithme euromillion excel gratuit - Forum Algorithmes / Méthodes
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:
$articles = $db->prepare("SELECT id_article FROM view_articles ORDER BY desc LIMIT 1"); $articles_dec = $articles->fetchAll(); print_r($articles_dec); die;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
$articles = $db->prepare("SELECT id_article FROM view_articles ORDER BY [nom_de_colonne] DESC LIMIT 1");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...