Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23

Discussione: Query su campo data...

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    220

    Query su campo data...

    Ciao a tutti,
    ho un campo "data" in un db mysql dove inserisco per l'appunto la data con mktime (date("H"),date("i"),date("s"), date("m"), date("d"), date("Y")).

    Adesso devo effettuare una query al db dicendo di contare tutti i campi che hanno un'orario compreso tra 00:00 e 00:59 di tutti i mesi, giorni e anni...

    La query è più o meno così, ma non so la formula esatta da scrivere a posto di BETWEEN '00:00:00' AND '00:59:60'
    codice:
    $query = mysql_query("SELECT COUNT(data) FROM MIA_TABELLA WHERE data BETWEEN '00:00:00' AND '00:59:60'");
    $risultato = mysql_fetch_row($query);
    $totale = $risultato[0];
    Mi date una mano perfavore?
    Grazie a tutti.

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    $query = mysql_query("SELECT COUNT(data) FROM MIA_TABELLA WHERE FROM_UNIXTIME(data,"%h:%i:%s") BETWEEN '00:00:00' AND '00:59:00'");
    $risultato = mysql_fetch_row($query);
    $totale = $risultato[0];
    think simple think ringo

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    220
    Grazie mille!
    ha funzionato!

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    220
    Sto provando lo stesso per il giorno della settimana (il lunedì) ma non mi funziona...
    Perchè?

    Sto usando:
    $query = mysql_query("SELECT COUNT(data) FROM MIA_TABELLA WHERE DAYOFWEEK(data) LIKE '2'");

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    220
    up

  6. #6
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    non funziona perchè data non è un TIMESTAMP o DATE, ma in formato unix like. prima di poter usare la funzione DAYOFWEEK devi passarlo da unix like a TIMESTAMP o DATE tramite la funzione FROM_UNIXTIME.

    "SELECT COUNT(data) FROM MIA_TABELLA
    WHERE DAYOFWEEK(FROM_UNIXTIME(data,"%Y-%m-%d")) = 2";
    think simple think ringo

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    220
    Ha funzionato!!
    Un'ultima cosa... (giuro) devo effettuare una "Top 20" dei dati contenuti in un campo "artisti".
    Il problema è che non conosco i contenuti del campo... perciò non penso di poter lavorare con una delle query precedenti...
    E poi non ho idea di come stampare a video i risultati:
    Posizione 1 - Nome Artista: Eiffel65 - Totale: 14(somma di tutti i record che contengono la voce Eiffel65)
    Posizione 2 - Nome Artista: Caparezza - Totale: 11(somma di tutti i record che contengono la voce Eiffel65)
    Posizione 3 - ecc.. ecc... fino a 20 posizioni...

    Come potrei fare?

  8. #8
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    la cosa migliore sarebbe:
    "SELECT *, COUNT(campo) AS totale FROM tabella GROUP BY campo ORDER BY totale DESC LIMIT 0,5";

    dove campo è il nome del campo contenente i nomi dei gruppi.
    think simple think ringo

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    220
    E come lo stampo nella pagina?

  10. #10
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    con il solito sistema:

    codice:
    $sql="SELECT *, COUNT(campo) AS totale FROM tabella GROUP BY campo ORDER BY totale DESC LIMIT 0,5";
    $st=mysql_query($sql) or die(mysql_error());
    while ($row=mysql_fetch_assoc($st))
         echo "artista: ".$row['campo']." totale: ".$row['totale'];
    think simple think ringo

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.