Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    61

    inserire dati in una tabella

    un saluto a tutti il mio problema e' il seguente:
    Ho un database chiamato parametri il quale e' composto da 11 tabelle
    tra cui 1 tabella letture composta dai seguenti campi:
    id idi ids temp umid tmin tmax umin umax data
    dove nel campo temp viene riportato il valore di temperatura inviato dal sensore
    dove tmin e' il valore che viene indicato dall'utente come riferimento minimo e tmax come riferimento
    massimo lo stesso discorso vale per umid che sta' per umidita'.
    poi esiste un'altra tabella chiamata allarmi con i seguenti campi:
    id idi ids temp umid data
    di seguito riporto un'esempio per esporre il problema,all'interno della tabella letture esistono dei record cosi
    strutturati:
    id idi ids temp umid tmin tmax umin umax data
    1 01 1 27.33 45.6 18.00 28.00 35.00 50.00 200901151018
    2 01 2 30.00 48.0 18.00 28.00 35.00 50.00 200901151018
    il secondo record ha il valore > di tmax e quindi e' un'allarme pertanto a me servirebbe che questo record fosse
    inserito nella tabella allarmi e questo vale per tutti i valori
    temp > tmax
    temp < tmin
    umid > umax
    umid < umin
    da terminale di linux fedora ho fatto una prova del genere
    mysql --user=root -ppass INSERT INTO allarmi SELECT id, idi, ids, temp, umid, data FROM letture WHERE temp < [tmin]
    questa stupidagine l'avevo pensata solo per estrapolare le temperature con valore < di tmin ma naturalmente non ha avuto
    successo.
    Scusate la lungagine della domanda e Grazie

  2. #2
    se puoi usare php ti puoi salvare i dati della select dentro delle variabili e poi successivamente fare l'insert, ma devi usare minimo due query temo

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    61
    si php lo posso usare perche' il sistema e' composto da script in php ma come fare??

  4. #4
    spiegami meglio la domanda:

    - Devi leggere i dati da letture?
    - Se si poi che dati e dove devi inserirli?

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    61
    il database e' composto cosi:
    ho una tabella chiamata letture all'interno della tabella ci sono i seguenti campi

    ID IDI IDS TEMP UMID TMIN TMAX UMIN UMAX DATA
    ora temp sta' per temperatura e umid per umidita' tmin per temperatura minima tmax temperatura massima e uguale per umin e umax,ora il campo temp e umid hanno dei valori numerici che gli vengono inviati dai sensori di temperatura invece i valori di minima e massima sono stabiliti dall'utente ad esempio io posso decidere che in una stanza la temperatura non deve essere <di 15° e non > di 28° e che l'umidita' non deve essere < di 45 e non maggiore di 60 ora se il sensore di temperatura mi invia questo dato
    TEMP 20° UMID 50 tutto e' ok se invece la lettura seguente e' TEMP 30° e umid 60 questo e' un dato da mettere il tabella allarme percio' ricapitolando se in uno dei due campi TEMP e UMID i valori sono <> di tmin tmax umin umax tutta la riga deve essere spostata nella tabella allarme.
    La tabella allarme e composta dai seguenti campi:
    ID IDI IDS TEMP UMID DATA
    E' simile a letture.
    Percio' in questa tabella midevono arrivare tutte le righe che nella tabella letture hanno
    TEMP <tmin e >tmax e UMID <umin e >umax,
    come posso fare per far questo in automatico??
    Grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    61
    Aggiungo che il sistema e' cosi composto:
    Sistema operativo Linux Fedoracore 8
    APACHE
    PHP
    mysql
    PHPMYADMIN
    non so se puo' essere utile

  7. #7
    *guarda l'ora*

    Okay ci riprovo...

    Allora, ipotizziamo che te hai una tabella con un record tipo questo:

    ID IDI IDS TEMP UMID TMIN TMAX UMIN UMAX DATA
    x x x 25 35 20 26 39 45 x

    Ora, tenendo presente che uno scritp php gira solo quando l'utente accede alla pagina (a parte determinati casi).
    Te vorresti una comparazione tra (esempio)

    temp che deve esser maggiore di tmin e minore di tmsx ed umid che deve essere minore di tmax e maggiore di tmin (per non essere messa nella tabella alert).

    Se sino a qui sono sulla strada giusta mi verrebbe da chiederti una cosa... hai un simpatico omino che si mette poi li a cancellare i record? altrimenti il sistema andrebbe a selezionare SEMPRE tutte le righe che hanno queste condizioni da allarme.

    Comunque un controllo di quel tipo penso sia fattibile, fai una ricerca con una select secondo determinate condizioni e metti poi nella tabella allarme. Ora non posto il codice sql poichè ho sonno, probabilmente lo farò domani in giornata.

    Buona notte

  8. #8
    Allora *sbadiglia*

    ti commento anche il codice php, in modo che te possa capire cosa intendo fare:

    Codice PHP:
    include 'config.inc.php'// inclusione del file con la connessione al database
    $query_ricerca "SELECT id, idi, ids, temp, umid, tmin, tmax, umin, umax, data FROM letture WHERE tmin > temp OR tmax < temp OR umin > umid OR umax < umid";
    // quella sopra è la query di ricerca secondo le tue necessità
    while ($risultato mysql_query($query_ricerca$db)) // sinchè vi sono risultati
    {
    $query_inserimento "INSERT INTO"// inserisco a database
    mysql_query($query_inserimento$db);

    Ora, la query di ricerca dovrebbe funzionare, quella di inserimento ovviamente no (non ho messo campi o valori o altro), detto questo manca un controllo per vedere se vi è almeno un record selezionato, inoltre c'è da vedere se vuoi evitare la duplicazione di id, se vuoi i dati ordinati per data o per altro, etcetera.

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    61
    Ciao in effetti l'orario non era proprio consono ma sono i pochi minuti di relax che ho.
    In effetti andrebbero ordinati per data
    ed e' altrettanto vero che andrebbe evitata la duplicazione
    per quanto riguarda il discorso della valanga di record avevo intenzione che la tabella ogni due tre giorni venisse salvata con dump su una cartella del pc chiamata allarmi e subito dopo fosse svutata con il comando truncate tutto questo attivato da crontab,gia questa operazione la effettuo per quanto riguarda la tabella "archivio letture"che e' sempre parte del database ma credo che gia' salvare i dati sulla tabella allarmi sia un grosso passo avanti ora ti saluto ciao e grazie.

  10. #10
    in che modo vuoi l'ordinamento per data?

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.