Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592

    dividere record per orario

    Ho un dubbio e vorrei un consiglio:
    ho una pagina di consegne giornaliere, e ho i timestamp su ogni record.
    Vorrei dividere le consegne per ogni ora dalla mattina alle 9 alle 19, ora di chiusura.
    Ha senso fare una query per ogni ora oppure è più *semplice* ma anche più veloce farne una e dividere i record trovati in qualche modo?
    Ma come posso contare, che so, tutti quelli che hanno come ora 16 piuttosto che 13?

    Grazie in anticipo a chi mi darà una mano

  2. #2
    Quote Originariamente inviata da telegio Visualizza il messaggio
    Ho un dubbio e vorrei un consiglio:
    ho una pagina di consegne giornaliere, e ho i timestamp su ogni record.
    Vorrei dividere le consegne per ogni ora dalla mattina alle 9 alle 19, ora di chiusura.
    Ha senso fare una query per ogni ora oppure è più *semplice* ma anche più veloce farne una e dividere i record trovati in qualche modo?
    Ma come posso contare, che so, tutti quelli che hanno come ora 16 piuttosto che 13?

    Grazie in anticipo a chi mi darà una mano
    Sto lavorando anche io ad una cosa del genere... Secondo me ti conviene procedere così
    codice:
    $adesso = date("H:i:s");
    $oggi = date("Y-m-d");
    
    
    if ($adesso >="00:00:00" && $adesso<="23:59:59"){
    
    $query = $pdo->query("SELECT * FROM $tabellaesempio
    WHERE timestamp >= UNIX_TIMESTAMP('$oggi 00:00:00') 
    AND timestamp <  UNIX_TIMESTAMP('$oggi 23:59:59')");
    
    foreach ($query as $row) {
    echo "Consegna: {$row['CAMPODELLATABELLADICUIHAIBISOGNO']}";
    }
    
    }
    Ovviamente usa vari if/elseif con gli orari che ti servono.
    Inoltre devi considerare anche la possibilità di poter vedere le consegne successive e le precedenti...nel caso in cui le consegne vengano completate in anticipo o se vengano completate in ritardo. Fammi sapere che soluzione utilizzerai...magari cambio idea
    Ultima modifica di supersqualo; 21-01-2018 a 18:07

  3. #3
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    intanto grazie.
    credo di fare così:
    estraggo gli orari
    prendo solo l'ora con substr
    $orario= substr($Rst['TEMPO'],11,2);
    faccio gli if con gli orari con le variabili tipo:
    $orario = (int)$orario

    if($orario <= 10) {
    $var10++;
    }
    if($orario <= 11) {
    $var11++;
    }
    e così via
    alla fine tutte la variabili che mi servono avranno il valore di cui ho bisogno
    ovviamente le varie $var9 $var10 eccetera le inizializzo fuori dal ciclo
    per ora non ho trovato controindicazioni

  4. #4
    E dopo come le vorresti visualizzare?? Comunque in questo modo credo che l'operazione sia più lenta perchè ad ogni esecuzione verranno assegnate in qualunque caso tutte le variabili...
    Es. sono le 9 di mattina
    Il primo if($orario <= 10) prende tutti i record compresi tra le 9 e le 10
    il secondo if($orario <= 11) prende tutti i record compresi tra le 9 e le 11
    Ultima modifica di supersqualo; 21-01-2018 a 18:22

  5. #5
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    eh ma guarda che non abbiamo scritto una cosa diversa eh..
    cioè io ho bisogno del count di ogni ora, quindi ogni volta che si esegue la pagina deve rifarlo.. credo su questo ci sia poco da fare, a meno di non mettere in mezzo le sessioni ma se cambia un record, utilizzando 3-4 PC per inserire dati, diventa complicato..
    come l'ho creata dovrebbe essere una soluzione semplice ed efficace. CREDO.

  6. #6
    Quote Originariamente inviata da telegio Visualizza il messaggio
    eh ma guarda che non abbiamo scritto una cosa diversa eh..
    cioè io ho bisogno del count di ogni ora, quindi ogni volta che si esegue la pagina deve rifarlo.. credo su questo ci sia poco da fare, a meno di non mettere in mezzo le sessioni ma se cambia un record, utilizzando 3-4 PC per inserire dati, diventa complicato..
    come l'ho creata dovrebbe essere una soluzione semplice ed efficace. CREDO.
    Spiegati meglio....è normale che la pagina debba ricaricarli ad ogni aggiornamento... ma non è normale che siano veri tutti gli if ad ogni esecuzione... In questo modo diventano superflui...non pensi?

  7. #7
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    Certo che sono veri tutti!! ne ho almeno 10 per ogni ora!! e se anche fossero 0, la variabile non si incrementa e va bene lo stesso

  8. #8
    Quote Originariamente inviata da telegio Visualizza il messaggio
    Certo che sono veri tutti!! ne ho almeno 10 per ogni ora!! e se anche fossero 0, la variabile non si incrementa e va bene lo stesso
    Allora non ho capito... posteresti il tuo codice completo?

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Io farei così:

    Prendi tutti i dati dal database e li dividi in fasce orarie di un'ora.
    Puoi farlo in mysql con qualcosa di questo tipo:
    codice:
    SELECT a FROM b GROUP BY HOUR(data_consegna)

    Oppure in php, scegli tu cosa preferisci, se hai molti dati vale anche la pena controllare quale metodo è più veloce.

    Ti crei un array in cui ogni elemento è un intervallo di un'ora (usa per le key dei nomi che poi ti permettano facilmente di fare delle ricerche) e dentro ci metti tutte le consegne per quell'intervallo di tempo (strutturali come vuoi, basta che ci siano i dati).

    A questo punto sara molto semplice visualizzare tutte le consegne, quelle per un orario specifico o per una fascia oraria di più ore semplicemente prendendo dall'array gli elementi corrispondenti.

  10. #10
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    @supersqualo scusa per la mia assenza, ma non ho visto la mail di notifica..
    devo dirti che modificherò domattina il mio codice usando quello di M4V1
    mooolto più facile del mio, basta fare un giusto count per sapere quanti sono, e con la query raggruppata per orario (ovviamente quella l'ho già testata.. ) vado alla grandissima

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 © 2024 vBulletin Solutions, Inc. All rights reserved.