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

    update if exist else insert .... dubbi

    ciao a tutti ho un problema con una query...
    io vorrei fare un update nel caso il record esistesse, una insert nel caso il record non esistesse...
    il problema è che se io invio gli stessi identici dati nell' update, questo mi segnala che non sono stati modificati record quindi mi inserisce nuovamente il record..

    il codice che uso è il seguente:

    codice:
    $result = mysql_query("UPDATE myTable SET col = '$dato', col2 = '1' WHERE User_ID = '$id_utente' AND col3 = '$numeroColonna' ")OR die("Errore 003, contattare l'amministratore ".mysql_error());		 
    $num = mysql_affected_rows();
    if($num == 0) {
    $result = mysql_query("INSERT INTO myTable (User_ID,col,col2,col3)VALUES ('$id_utente','$dato','1','$numeroColonna')")OR die("Errore 003, contattare l'amministratore ".mysql_error());
    }
    come posso modificarlo secondo voi?

    Vi ringrazio anticipatamente!!

  2. #2
    1 query, perchè 2???

    codice:
    INSERT INTO 
    myTable (User_ID,col,col2,col3) 
    VALUES ('$id_utente','$dato','1','$numeroColonna') 
    ON DUPLICATE KEY 
    UPDATE col = '$dato', col2 = '1'

  3. #3
    Ciao! Grazie per la risposta!

    Se faccio in questo modo però sembra continuarmi ad inserire nuove righe...

    c'è da considerare che nella tabella ci può stare più volte lo stesso utente, ma mai due volte lo stesso utente collegato a un'identica col3

    del tipo:

    ID_Utente - col3

    311 1
    311 2
    311 3

    ma non:
    311 1
    311 1

    infatti nella where avevo proprio messo quella condizione...

  4. #4
    se noti nella mia query si parla di on duplicate key, si ma le chiavi ci devono essere nel db. non deve essere la query a fare il lavoro, deve essere il db!!!

  5. #5
    quindi devo mettere delle chiavi su quei due campi?

  6. #6
    Come faccio ad impostare due chiavi uniche in quel modo? grazie per la pazienza..

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.