Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043

    errore con update multipla

    sto provando per la prima volta a fare una query per un'update su tre tabelle contemporaneamente, ma mi da 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 'UPDATE a_login, a_anagrafica, a_preferenze_ana SET nome='gigioNE', categoria=' at line 4

    Codice PHP:
    $sql "SELECT a_login.*, a_anagrafica.*, a_preferenze_ana.* 
            FROM a_login, a_anagrafica, a_preferenze_ana 

            UPDATE a_login, a_anagrafica, a_preferenze_ana 
            SET nome='
    $nome', categoria='$categoria', come_ci_hai_conosciuto='$come_ci_hai_conosciuto
     
            WHERE a_anagrafica.id_anagrafica = a_login.id_anagrafica 
            AND a_login.id_login = a_preferenze_ana.id_login
            AND a_login.id_login = '
    $utente'";
    mysql_query($sql,$conn) or die (mysql_error()); 

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    non si può fare col php?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    36
    Penso imho :
    1) che la select iniziale sia inutile .
    2) per l'update multiplo su più tabelle devi controllare che mysql sia almeno versione 4.0.2.
    3) meglio qualificare (sempre)la tabella di appartenenza nella clausola SET (es: a_login.nome, a_anagrafica.categoria, a_preferenze_ana.come_ci_hai_conosciuto)
    3) non avendo mai avuto la necessità di effettuare tale operazione prova la seguente query......e chiunque ci sia lassù ce la mondi b(u)ona.

    $sql = " UPDATE a_login, a_anagrafica, a_preferenze_ana
    SET a_login.nome='$nome', a_anagrafica.categoria='$categoria', a_preferenze_ana.come_ci_hai_conosciuto='$come_ci_ hai_conosciuto'

    WHERE a_anagrafica.id_anagrafica = a_login.id_anagrafica
    AND a_login.id_login = a_preferenze_ana.id_login
    AND a_login.id_login = '$utente'";
    mysql_query($sql,$conn) or die (mysql_error());


  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    grazie per l'aiuto Rhcp67, ho inserito il codice che hai postato e ora non mi da più errore, solo che non mi fa l'update.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    36
    mmmh........non so che dirti........cioè...... mi frullano troppe cose al riguardo :

    1) negli update multipli la clausola WHERE ha un forte odore di JOIN.
    2) quella variabile $nome che mi pare un campo nascosto $_POST[nome] che si propaga allo script di update potrebbe se non passata correttamente invalidare tutte le associazioni relazionali con gli id.
    3) ti consiglio di effettuare un debug con degli echo per vedere se tutte le variabili sono valorizzate come dovrebbero e quindi se arrivano a dewstinazione.


  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    No, scusa! Avevo sbagliato io a scrivere una parte del codice.
    Funziona benissimo!

    GRAZIE



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.