Visualizzazione risultati 1 fino 6 di 6

Discussione: 2 query in una

  1. #1
    gianlucaweb non è connesso Utente attivo
    Data registrazione
    01-01-2003
    Messaggi
    470

    Predefinito 2 query in una

    Ciao


    Avrei bisogno di cambiare un valore in un campo di una tabella del db e contemporaneamente inserire 2 nomi in 2 campi della stessa tabella del db.

    E' possibile farlo nella stessa query o devo fare 2 query separate?

    Adesso ho questa:

    Codice PHP:
    $query="UPDATE ".$tbl_prefix."user SET actived = 1 WHERE auth = '$auth'";
    $risultato = mysql_query($query) or die();
    devo inserire anche i nomi delle cartelle che creo al volo per l'utente attivato
    nella stessa tabella. Devo fare un'altra query con nome differente o posso fare tutto in uno?

    Grazie

  2. #2
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Se i due campi da aggiornare fanno parte dello stesso record (e hai già calcolato i valori che ti servono), puoi usare questa sintassi:
    Codice:
    UPDATE NomeTabella
    SET Campo1 = Expr1, Campo2 = Expr2, Campo3 = Expr3
    WHERE CondizioniPerAggiornamento
    Se le CondizioniPerAggiornamento ti selezionano più record, ricorda che l'aggiornamento avviene sulla base degli altri campi dello stesso record, se non specifichi costanti.

    In caso contrario, purtroppo devi eseguire due query...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  3. #3
    gianlucaweb non è connesso Utente attivo
    Data registrazione
    01-01-2003
    Messaggi
    470

    Predefinito

    Citazione Originalmente inviato da dementialsite Visualizza messaggio
    Se i due campi da aggiornare fanno parte dello stesso record (e hai già calcolato i valori che ti servono), puoi usare questa sintassi:
    Codice:
    UPDATE NomeTabella
    SET Campo1 = Expr1, Campo2 = Expr2, Campo3 = Expr3
    WHERE CondizioniPerAggiornamento
    Se le CondizioniPerAggiornamento ti selezionano più record, ricorda che l'aggiornamento avviene sulla base degli altri campi dello stesso record, se non specifichi costanti.

    In caso contrario, purtroppo devi eseguire due query...

    Stammi bene...
    Non penso di aver capito bene. I campi fanno parte delle stesso record (stesso utente con i suoi dati)

    Comunque ho tentato di eseguire 2 query:

    Codice PHP:
    $auth=$_GET["auth"];
    $user=$_GET["user"];

    $foto = $user;
    $min = $user;

    if (
    trim($auth) == "")
    Errore("javascript:history.go(-1)", "Errore", "Codice di autorizzazione non corretto" ,".");

    $query="UPDATE ".$tbl_prefix."user SET actived = 1 WHERE auth = '$auth'";
    $risultato = mysql_query($query) or die("<img src=\"images/button_cancel.png\"> <span class=\"Stile7\">Il codice di autorizzazione non è corretto.</span>");

    $query2="INSERT INTO ".$tbl_prefix."user (foto ,miniature) VALUES ('$foto', '$min') WHERE auth = '$auth'";
    $risultato2 = mysql_query($query2) or die(mysql_error());
    La prima funziona; la seconda mi restituisce 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 'WHERE auth = '953e34f0cc1453eae336a7abe3e3f3a8'' at line 1

    Non ho capito come correggere. Qual'è l'errore?

    Mi interessa in ogni caso capire anche la tua soluzione.
    Potresti anche riportarmela usando i dati sopra?

    Grazie ancora.

  4. #4
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Devi per forza fare due query.

    Riguardo all'errore, è un errore nella sintassi SQL, nelle insert non ci va il WHERE dato che è un inserimento non una modifica.
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  5. #5
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    In teoria puoi benissimo scrivere questa query, visto che la condizione di selezione è la stessa:
    Codice:
    UPDATE {$tbl_prefix}user
    SET actived = 1, foto = '$foto', miniature = '$min'
    WHERE auth = '$auth'
    A quanto ho capito la tua query dovrebbe selezionare un solo record, e comunque prendere dei valori costanti attraverso PHP, quindi non è il caso che intendevo sopra.

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  6. #6
    gianlucaweb non è connesso Utente attivo
    Data registrazione
    01-01-2003
    Messaggi
    470

    Predefinito

    Citazione Originalmente inviato da binarysun Visualizza messaggio
    Devi per forza fare due query.

    Riguardo all'errore, è un errore nella sintassi SQL, nelle insert non ci va il WHERE dato che è un inserimento non una modifica.
    e quindi quando bisogna inserire dati in un campo identificando il record dell'utente (in questa caso con un codice ma poteva essere anche l'ID) cosa bisogna fare?

    Grazie

    x dementialsite: ah scusa non avevo visto la tua risposta. Grazie
    Ultima modifica di gianlucaweb : 04-04-2010 alle ore 19.00.59

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •