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

    Modifiche con condizioni

    Salve e buongiorno a tutti.

    Sto cercando di modificare una tabella con dati presi da un form ma i campi della tabella devo essere modificati solo se differenti da quelli già esistenti:

    Codice PHP:
    mysql_query("Upload archive SET if(Nome!=$nome, Nome=$nome), if(Cognome!=$cognome, Cognome=$cognome), if(Email!=$email, Email=$email), if(Testo!=$testo, Testo=$testo) Where IDMsg=$idmsg"
    mi da questo errore:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near

  2. #2

    Re: Modifiche con condizioni

    Originariamente inviato da techno
    Salve e buongiorno a tutti.

    Sto cercando di modificare una tabella con dati presi da un form ma i campi della tabella devo essere modificati solo se differenti da quelli già esistenti:

    Codice PHP:
    mysql_query("Upload archive SET if(Nome!=$nome, Nome=$nome), if(Cognome!=$cognome, Cognome=$cognome), if(Email!=$email, Email=$email), if(Testo!=$testo, Testo=$testo) Where IDMsg=$idmsg"
    mi da questo errore:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
    ma una ripassatina all'SQL? Dove hai trovato una sintassi del genere?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3

  4. #4
    poi spieghi sintassi del genere dove è sbagliato

  5. #5
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    Ciao, ma infatti il tutorial ti indica di applicare questa sintassi solo nel caso di una query di selezione. Qui tu la utilizzi per un update, sbagliandone anche la sintassi, in quanto operatore ternario, tu passi solo due campi, ci sono diversi errori insomma, per questo non funziona. Non per ultimo questa è una sintassi MySQL non SQL puro, quindi bisogna andarci attenti.

  6. #6
    si avevi ragione non mi ero accorto la sintassi è sbagliatissima.

    Ho trovato questo nella guida di mysql:


    UPDATE [LOW_PRIORITY] [IGNORE] table_reference
    SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...

    ma non ho capito molto mi potreste dare una dritta voi???
    Grazie.

  7. #7
    modificata così dovrebbe andare?:

    Codice PHP:
    mysql_query("Upload archive SET Nome=if(Nome!='$nome', '$nome', Nome), Cognome=if(Cognome!='$cognome', '$cognome', Cognome), Email=if(Email!='$email', '$email', Email), Testo=if(Testo!='$testo', '$testo', Testo) Where IDMsg=$idmsg"

  8. #8
    Originariamente inviato da techno
    modificata così dovrebbe andare?:

    Codice PHP:
    mysql_query("Upload archive SET Nome=if(Nome!='$nome', '$nome', Nome), Cognome=if(Cognome!='$cognome', '$cognome', Cognome), Email=if(Email!='$email', '$email', Email), Testo=if(Testo!='$testo', '$testo', Testo) Where IDMsg=$idmsg"
    magari con UPDATE al posto di Upload.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    si è stato un mio errore nella trascrizione stavo pensando ad altro mentre scrivevo questo sorry a tutti

  10. #10
    L'importante è che funzioni. Quello che hai postato dovrebbe essere OK.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

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.