Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Quey sql con le date!

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    124

    Quey sql con le date!

    Salve ho un problema con un altra query sql, questa volta devo gestire le date.....

    vi spiego tutto.....

    ho un tabella "stats_visite" formata da 3 attributi,
    id (chiave primaria)
    ip ( ip visitatore) varchar 15
    date ( datetime)

    ora ogni volta che un utente visita la mia home page, viene effettuata la seguente query...

    Codice PHP:
    $date date("Y/m/s H");
    $ip getenv('REMOTE_ADDR')
    //Inseriamo nella tabella delle visite
    $result $conn->query("INSERT INTO stats_visite VALUES ('$id','$ip','$date')" ); 
    e fin qui ci siamo.... ora nel pannello di controllo vorrei mostrare due cose.

    i visitatori totali unici ( per lo stesso ip , mostrare un solo utente)
    i visitatori di oggi

    Come posso fare per non far ripetere gli utenti con lo stesso ip?

    In sql esiste una funzione per la gestione delle date, che tramite il confrondo posso capire
    solo i visitatori di oggi sempre non ripetuti in base all'ip?



    grazie mille!

  2. #2
    Ciao,

    ti riporto le query da eseguire:

    i visitatori totali unici:
    Codice PHP:
    select count(distinct ipfrom `stats_visite

    i visitatori di oggi:
    Codice PHP:
    SELECT count(*) FROM `stats_visitewhere TO_DAYSNOW( ) )  = TO_DAYS(date 
    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    124
    mmm grazie mille la prima query è perfetta... la seconda non so perchè
    ma da sempre 0
    array(1) { ["count(*)"]=> string(1) "0" }

    "SELECT count(*) FROM stats_visite where TO_DAYS( NOW( ) ) = TO_DAYS(date ) "
    mmmm
    ma cosa fa di preciso conta tutti le tuple da stata_visite dove
    TO_DAYS è la distanza da una data all'altra?
    quindi la distanza da ora ai giorni delle date?


    grazie

  4. #4
    La funzione TO_DAYS restituisce il numero di giorni a partire dall'anno 0

    TO_DAYS( NOW( ) ) = TO_DAYS(date )
    è un modo veloce per vedere se la data memorizzata nel campo "date" è uguale ad oggi.
    Non vorrei che il nome del campo "date" possa creare qualche problema....

    Ti riporto il link al manuale della funzione.
    http://dev.mysql.com/doc/refman/5.1/...nction_to-days

    Ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    124
    mmm ok ma come faccio pero a concatenare la query bene!

  6. #6
    Cosa intendi per concatenare la query?

    Ho provato ad esegure la queryt su un mio db in locale con gli stessi campi tuoi e non ho avuto problemi.

    Che versione hai di mysql?
    Io ho provato su una MySQL: 5.0.51

    Ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    124
    si funziona tutto avevo un problema nell'inserire le date nel db, le inserivo male e mi veniva sballate tutte le date ecco perchè era sempre 0 il risultato ora funziona... grazie mille...


    ora ho scritto una query che mi verifica solo le visite odierne confrontando la data attuale con quella della visita....

    query("SELECT COUNT( * ) FROM stats_visite WHERE LEFT( DATE, 10 ) = '" . date("Y-m-d") ."'" );

    sapendo che il mio db registra le date cosi ... 2009-11-02 13:28:0
    confronta i primi 10 caratteri ( solo la data) con la data attuale!

    questa query è perfetta funziona, ma se vorrei avere solo visitatori UNICI anche nella query odierna dove posso inserire la funzione "distinct" ?

    grazie mille

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    124
    query("SELECT COUNT( distinct ip ) FROM stats_visite WHERE LEFT( DATE, 10 ) = '" . date("Y-m-d") ."'" );

    bastava fare cosi! sto diventando scemo

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.