Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Classifica settimanale

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    58

    Classifica settimanale

    Salve a tutti, spero che almeno qui ci si riesca a tirarmi fuori da un bel problemino con la classifica delle 10 storie piu' votate della settimana.

    Come gia' detto appunto, la classifica dovrebbe tirare fuori dal database, le 10 storie settimanali che hanno ricevuto un punteggio maggiore, e elencarle per ordine di voto, dalla valutazione piu' alta a quella piu' bassa.

    con la stringa:

    $result = sql_query("select sid, title, ratings from ".$prefix."_stories $querya1lang score!=0 order by ratings DESC limit 0,10");

    riesco a tirare fuori le storie piu' votate di tutti i tempi. Qui di seguito cio' che appare:




    A me serve pero' come ho gia' detto tirar fuori gli ultimi 7 giorni ed elencarli come suddetto.

    Ho provato con:

    SELECT sid, title, ratings, time FROM ".$prefix."_stories WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) <= FROM_UNIXTIME(1171148400) ORDER BY ratings DESC limit 0, 10";

    ma a dire il vero conosco molto poco il Php a cui mi sto avvicinando adesso, e la stringa qui sopra non sono riuscito a implementarla. Temo di aver sbagliato il parametro nell'Unixtime. E tra l'altro non sono sicuro che nel database le storie siano state registrate usando Unixtime.

    C'e' qualche Guru del php che riesce a tirarmi fuori dai guai?

    Ringrazio anticipatamente tutti quelli che vorranno aiutarmi !

    ps: inserisco qui sotto lo script completo che lascia apparire la classifica di tutti i tempi come descritto sopra, nel caso possa servire per le risposte. Grazie ancora!

    TimTom



    /* Top 10 most voted stories */

    $result = sql_query("select sid, title, ratings from ".$prefix."_stories $querya1lang score!=0 order by ratings DESC limit 0,10", $dbi);

    if (sql_num_rows($result, $dbi)>0) {
    echo "<table border=\"0\" cellpadding=\"10\" width=\"100%\"><tr><td align=\"left\">\n"
    ."<font class=\"option\">$top "._MOSTVOTEDSTORIES."</font>

    <font class=\"content\">\n";

    $lugar=1;

    while(list($sid, $title, $ratings) = sql_fetch_row($result, $dbi)) {

    if($ratings>0) {
    echo "<big>&middot;</big>$lugar: <a href=\"modules.php?name=News&amp;file=article&amp; sid=$sid\">$title</a> - ($ratings "._LVOTES.")
    \n";
    $lugar++;
    }
    }
    echo "</font></td></tr></table>
    \n";
    }

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Per poterti aiutare bisognerebbe sapere in che formato sono salvate le date nel db.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    58
    Se ho ben capito cio' che intendi dire, nella tabella _stories, le date sono in formato Campo "Time", Type "datetime", NULL, Standard Null.

    Come puoi vedere dallo script "Time" e' il richiamo per le date.

    se inserisco "time" nel parametro di unixtime, mi da errore. Sparisce tutta la classifica. Lo stesso succede con "datetime". mi risponde che non conosce quella colonna.

    Tieni presente lo script della top che ho inserito nel precedente post. Questa stringa ha sostituito la query di quello script. Se inserisco in unixtime (un qualsiasi numero) mi salta completamente le indicazioni partendo da WHERE fino a Unixtime, e continua senza problemi con "order by..." lasciando apparire la top assoluta.
    Di seguito la stringa:

    $query="SELECT sid, title, ratings, time FROM ".$prefix."_stories WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) <= FROM_UNIXTIME(time ) ORDER BY ratings DESC limit 0, 10";

    cosi' pero', mi da errore. Sparisce tutta la classifica.

    Grazie!

    TimTom

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    58
    Se invece non ho capito cio' che chiedevi, ti prego di spiegarlo con esempi, tenendo presente che mi sto avvicinando adesso al Php.

    Ancora molte grazie per l'aiuto.

    TimTom

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    se il campo è di tipo datetime prova così
    codice:
    SELECT sid, title, ratings, `time` FROM ".$prefix."_stories WHERE
    `time` > now() - interval 7 day
    order by ratings desc limit 10

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    58
    Funzionaaaaa!

    Grazie per la dritta, sei un Guru del PHP!

    Ti auguro un buon inizio settimana. Ciao!!

    TimTom

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.