Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [MySql] Classifica articoli più letti

    Ciao a tutti,

    ho le seguenti tabelle:

    CREATE TABLE `articles` (
    `article` int(11) NOT NULL auto_increment,
    `article_title` varchar(100) NOT NULL default '',
    `article_description` text NOT NULL,
    `article_text` text NOT NULL,
    `article_status` tinyint(1) NOT NULL default '0',
    `article_time` datetime NOT NULL default '0000-00-00 00:00:00',
    `article_user` int(11) NOT NULL default '0',
    PRIMARY KEY (`article`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=26 ;

    CREATE TABLE `visits` (
    `visit` int(11) NOT NULL auto_increment,
    `visit_article` int(11) NOT NULL default '0',
    `visit_time` datetime NOT NULL default '0000-00-00 00:00:00',
    `visit_user` int(11) NOT NULL default '0',
    PRIMARY KEY (`visit`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=100 ;

    ogni volta che un articolo viene visualizzato aggiungo un nuovo record alla tabella visits.

    vorrei visualizzare i 10 articoli più letti, come posso buttare giù la query? idee? sono 2 ore che ci provo ma non riesco a farmi venire in mente nulla.

    grazie

  2. #2
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    SELECT articles.* , visits.* , COUNT( visits.visit ) AS numero_visite FROM articles LEFT JOIN visits ON articles.article = visits.visit_article GRUOP BY visits.visit LIMIT 1, 10

    cosi? com'è?

  3. #3
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Dovrebbe andare questa:

    codice:
    SELECT articles.article_title, COUNT(visits.visit) AS visite FROM articles INNER JOIN visits ON 
    articles.article = visits.visit_article GROUP BY articles.article ORDER BY visite DESC LIMIT 0,10


    Edit... ci ho messo un po' troppo... l'sql non è il mo forte

  4. #4
    grazie mille, funziona che è una meraviglia.

    avevo fatto delle prove simili solo che ero confuso tra il count o il max ed inoltre non sapevo come passare il valore all'ordinamento.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.