Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Aggiornare record oppure inserire se non esiste

    Salve a tutti, ho visto in giro che è possibile realizzare una query che inserisce un record o lo aggiorna se già esistente. Purtroppo però non riesco a comprendere quale dei tanti metodi esistenti possa effettivamente fare al mio caso. Ecco il codice che utilizzo attualmente:

    $query = mysql_query("SELECT * FROM database_stazioni WHERE id_stazione='$cat' AND Data_anno = '$anno' AND Data_mese = '$mese' AND Data_giorno = '$giorno' AND tipo_dato='$var_tipo_dato'", $conn);

    if(mysql_num_rows($query) > 0) {
    // UPDATE RECORD


    mysql_query("UPDATE database_stazioni
    SET temp = '$var_temp',
    ur = '$var_ur',
    wind = '$var_wind',
    pressione = '$var_pres' ,
    pioggia = '$var_pioggia'
    WHERE id_stazione='$cat' AND Data_anno = '$anno' AND Data_mese = '$mese' AND Data_giorno = '$giorno' AND tipo_dato='$var_tipo_dato'", $conn);


    } else {
    // CREA RECORD


    $myquery = "INSERT INTO database_stazioni(id_stazione, Data_anno, Data_mese, Data_giorno, Data_ora, Data_min, temp, ur, wind, direzione, pressione, pioggia, tipo_dato)
    VALUES(
    '" . $cat . "',
    '" . $anno . "',
    '" . $mese . "',
    '" . $giorno . "',
    '" . '-' . "',
    '" . '-' . "',
    '" . $var_temp . "',
    '" . $var_ur . "',
    '" . $var_wind . "',
    '" . '-' . "',
    '" . $var_pres . "',
    '" . $var_pioggia . "',
    '" . $var_tipo_dato . "'
    )";
    mysql_query($myquery, $conn);
    }
    E' possibile utilizzare una sola query?
    Grazie mille a tutti in anticipo!
    Ultima modifica di GianfrancoPa; 26-11-2013 a 12:28
    Gianfranco

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    287
    l'istruzione si chiama INSERT ... ON DUPLICATE KEY UPDATE

    in pratica il dbms prova a fare l'insert. Se l'insert fallisce e abbiamo una duplicazione, allora fa update


  3. #3
    puoi fare riferiemento anche all'istruzione MERGE INTO...

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.