Visualizzazione risultati 1 fino 16 di 16

Discussione: Estrarre valori di min e max

  1. #1
    raimaker non è connesso Utente giovane
    Data registrazione
    25-09-2011
    Messaggi
    94

    Predefinito Estrarre valori di min e max

    Ciao a tutti,
    devo estrarre i dati min e max dalla colonna Temp di questa tabella
    *****

    e riscriverli in un file txt

    Qualcuno può aiutarmi ?
    Grazie .

    per poterli sriverli nel file x archivio posso usare questo script

    $DATI= $T_MAX."|".$T_MIN"|\n";

    $dati = fopen("dati.txt", "a+");
    fwrite($dati, $DATI);
    fclose($dati);

    Ma come estrapolo T_MIN e T_MAX ?
    Ultima modifica di alemoppo : 03-11-2013 alle ore 21.57.15 Motivo: url nascosto come da richiesta

  2. #2
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Riga per riga leggi e interpreti (tipo usando explode sulle virgole) e confronti con il tuo min/max attuali.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  3. #3
    raimaker non è connesso Utente giovane
    Data registrazione
    25-09-2011
    Messaggi
    94

    Predefinito

    Citazione Originalmente inviato da saitfainder Visualizza messaggio
    Riga per riga leggi e interpreti (tipo usando explode sulle virgole) e confronti con il tuo min/max attuali.
    hai un esempio da passarmi non sono tanto pratico

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    La funzione file() può esserti utile: ti fornisce un array in cui in ogni indice c'é una riga del file.

    Quindi, avendo a disposizione riga per riga, puoi isolare la temperatura ad esempio con substr() , oppure con explode().
    Ti consiglio di inserire tutte le temperature in un array, così puoi utilizzare max() e min() per ricavare i due valori.

    Per scrivere i dati, la fopen() + fwrite() vanno benissimo, però puoi fare anche il tutto in una riga con la comoda funzione file_put_contents().

    Ciao!
    Ultima modifica di alemoppo : 14-10-2013 alle ore 18.42.16

  5. #5
    raimaker non è connesso Utente giovane
    Data registrazione
    25-09-2011
    Messaggi
    94

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    La funzione file() può esserti utile: ti fornisce un array in cui in ogni indice c'é una riga del file.

    Quindi, avendo a disposizione riga per riga, puoi isolare la temperatura ad esempio con substr() , oppure con explode().
    Ti consiglio di inserire tutte le temperature in un array, così puoi utilizzare max() e min() per ricavare i due valori.

    Per scrivere i dati, la fopen() + fwrite() vanno benissimo, però puoi fare anche il tutto in una riga con la comoda funzione file_put_contents().

    Ciao!
    il problema per iniziare è come leggere la pagina visto che non un un file txt,
    se vado a fare "visualizza sorgente pagina" escono i tag <br> ecc...

  6. #6
    Data registrazione
    05-06-2006
    Messaggi
    19

    Predefinito

    la pagina in questione è una pagina dinamica? generata da qualcosa che conosci?
    nel caso in cui non fosse dinamica puoi creare un file .csv (che dovrebbe esser il formato del testo stampato) e copiare ed incollarci dentro tutto il testo.
    una volta fatto ciò puoi utilizzare http://php.net/manual/en/function.str-getcsv.php per trasformare il csv in un normale array

  7. #7
    raimaker non è connesso Utente giovane
    Data registrazione
    25-09-2011
    Messaggi
    94

    Predefinito

    Citazione Originalmente inviato da clicktestemobili Visualizza messaggio
    la pagina in questione è una pagina dinamica? generata da qualcosa che conosci?
    nel caso in cui non fosse dinamica puoi creare un file .csv (che dovrebbe esser il formato del testo stampato) e copiare ed incollarci dentro tutto il testo.
    una volta fatto ciò puoi utilizzare http://php.net/manual/en/function.str-getcsv.php per trasformare il csv in un normale array
    confermo è una pagina dinamica.

  8. #8
    Data registrazione
    05-06-2006
    Messaggi
    19

    Predefinito

    Sto scrivendo un po' di fretta e mi scuso, ti lascio un paio di referenze che potrebbero tornarti utili...

    per ottenere il codice della pagina
    http://php.net/manual/en/function.file-get-contents.php

    per rimuovere i <br> e altri tag html dalla stringa che otterrai
    http://php.net/manual/en/function.strip-tags.php

  9. #9
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    Citazione Originalmente inviato da raimaker Visualizza messaggio
    il problema per iniziare è come leggere la pagina visto che non un un file txt,
    se vado a fare "visualizza sorgente pagina" escono i tag <br> ecc...
    Non capisco dove sia il problema: da come è fatta quella pagina, leggi soltanto le chiavi dispari dell'array ottenuto con file().

    Ciao!

  10. #10
    raimaker non è connesso Utente giovane
    Data registrazione
    25-09-2011
    Messaggi
    94

    Predefinito

    Ok ho risolto,

    ho però un altro problema,
    se archivio i dati in sql mi inserisci dei dati non corretti
    es. se estrapolo questi valori

    max 25.5
    min 18.7
    se li inserisco in file txt sono corretti ,

    se li inserisco nel database mysql mi memorizza i dati errati es.
    max 30
    min -30


    boh.... ?
    Codice PHP:
    $sql1="INSERT IGNORE INTO dati ( Data, Ora, T, T_MAX, T_MIN) values
    ('"
    .$data."', '".$ora."', '".$T."', '".$T_MAX."', '".$T_MIN."')";

    $result = mysql_query($sql1);
    Ultima modifica di alemoppo : 16-10-2013 alle ore 19.53.53 Motivo: +tag [php]

  11. #11
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    Perché "IGNORE"?
    In che formato sono i campi del database?

    Ciao!

  12. #12
    raimaker non è connesso Utente giovane
    Data registrazione
    25-09-2011
    Messaggi
    94

    Predefinito

    sono in formato text ,

  13. #13
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    Ok. Per risparmiare spazio, io convertirei la data/ora in "data - datetime",mentre gli altri visto che sono numeri, li convertirei in FLOAT o DOUBLE (dipende dalla precisione che ti serve. Trattandosi di temperature ambientali (credo), penso che float sia più che sufficiente. Anzi, puoi anche salvarlo come intero moltiplicato per 10 (o per 100) salvando così una (due) cifra significativa dopo la virgola.
    p.s: salvando in questi modi, oltre che ai vantaggi di spazio, un domani puoi gestirli molto facilmente ad esempio potrai ordinare i dati per la colonna che vuoi.

    ---

    In ogni caso, text (anche se sprecato), dovrebbe funzionare.

    Prova a fare l'echo della query per vedere se è ben formata.

    Ciao!
    Ultima modifica di alemoppo : 16-10-2013 alle ore 20.06.21

  14. #14
    raimaker non è connesso Utente giovane
    Data registrazione
    25-09-2011
    Messaggi
    94

    Predefinito

    Bella idea quelli di salvarli x 10 , non avevo mai pensato a questo sistema ,
    se invece salvo il dato eliminando il punto non è la stesa cosa che moltiplicarlo per 10 ?

    es. $tmax = str_replace(".", "", $T_MAX);

    se voglio salvarli in TXT perchè con un refresch ( ogni 5 minuti ) della pagina non li salva ? ha bisogno per forza che clicco su f5 ,
    sai un' altro metodo ?

  15. #15
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    In che senso vuoi eliminare il punto? Se è un float non puoi eliminarlo. Se invece è un testo puoi eliminarlo ad esempio con la str_replace(). Se invece vuoi convertirlo in intero (ad esempio dopo averlo moltiplicato per 10), puoi usare intval()

    Se vuoi fare un refresh, invece che con F5 puoi forzare con html o con javascript (cercando un attimo su google troverai) . Oppure, soluzione elegante è l'uso di ajax.

    Ciao!

  16. #16
    raimaker non è connesso Utente giovane
    Data registrazione
    25-09-2011
    Messaggi
    94

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    In che senso vuoi eliminare il punto? Se è un float non puoi eliminarlo. Se invece è un testo puoi eliminarlo ad esempio con la str_replace(). Se invece vuoi convertirlo in intero (ad esempio dopo averlo moltiplicato per 10), puoi usare intval()

    Se vuoi fare un refresh, invece che con F5 puoi forzare con html o con javascript (cercando un attimo su google troverai) . Oppure, soluzione elegante è l'uso di ajax.

    Ciao!
    ok grazie , farò delle prove .

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •