Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: [mysql] aiuto query

  1. #1

    aiuto query

    Ciao ragazzi, è una cosa veloce e semplice (penso) per voi, cosa c'è di sbagliato in questa queri??

    codice:
    UPDATE utenti
    SET ultimo_accesso = (SELECT accesso FROM utenti WHERE username='$username')
    WHERE username = '$username'
    Dato che sono novizio con le query annidate vi spiego, 2 campi 1 accesso e 1 ultimo_accesso, ho la necessità di "spostare" il contenuto di accesso in ultimo_accesso, phpmyadmin mi dice:

    You can't specify target table 'utenti' for update in FROM clause

    Ma non sò che rispondergli =)

    A phpmyadmin, mela fai fare sta query ?? =)

    Grazie
    Che mondo sarebbe senza Nutella.

    PHP/MYSQL/HTML/CSS/JAVASCRIPT

  2. #2
    a parte che manca il titolo specificato, ovviamente non puoi fare una query di questo genere perché stai tentando di lanciare una subquery su una tabella che stai usando in un update

    per risolvere il problema puoi sfruttare la chiave primaria e/o le chiavi uniche, un insert con l'on duplicate key ed una select come sorgente dei valori

    dai un occhio qua
    http://dev.mysql.com/doc/refman/5.5/en/insert.html

    maggiori dettagli qua
    http://dev.mysql.com/doc/refman/5.5/...rt-select.html

    ed anche qua
    http://www.daccii.it/node/72



    l'importante è che nella insert specifichi una chiave primaria e/o unica cosi che, scattando l'errore di duplicate key, entri in funzione il codice presente nell'on duplicate key ... ed il gioco è fatto!
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  3. #3
    nonostante il pessimo titolo

    ... set ultimo_accesso=accesso ...

  4. #4
    Grazie a tutti e 2, scusate per il titolo.
    Allora ho capito qualcosa di quello che mi hai detto, era solo per non eseguire 2 query, volevo provare a farne due insieme.
    Dato che non ho voglia di complicarmi ho fatto 1 query che mi prende l'accesso e una che lo inserisce al posto di ultimo_accesso.
    Grazie ancora!
    Che mondo sarebbe senza Nutella.

    PHP/MYSQL/HTML/CSS/JAVASCRIPT

  5. #5
    ----------------------------------------------------
    nello spirito del forum, spiega come hai fatto, così aiuterai qualche altro forumista che dovesse avere lo stesso problema.
    ----------------------------------------------------

  6. #6
    Ho già spiegato, con una query prendo il contenuto del campo accesso e con un altra lo insertisco al posto di ultimo_accesso
    Che mondo sarebbe senza Nutella.

    PHP/MYSQL/HTML/CSS/JAVASCRIPT

  7. #7
    Originariamente inviato da optime
    nonostante il pessimo titolo

    ... set ultimo_accesso=accesso ...


    non mi ero accorto che voleva reimpostare un campo presente nello stesso record :sbonk: mi ero soffermato esclusivamente sull'uso della select relativa alla stessa tabella dell'update

    :sbonk:
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  8. #8
    Originariamente inviato da CiRi..Cuber
    Ho già spiegato, con una query prendo il contenuto del campo accesso e con un altra lo insertisco al posto di ultimo_accesso
    evidentemente è una fatica ciclopica postare la query

  9. #9
    Oddio, se uno a bisogno di aiuto con mysql e con una query e viene a leggere qui penso sappia fare una query di SELECT con WHERE e una query di UPDATE con WHERE no??
    Se è di vitale importanza tò:

    Codice PHP:
    $query $this->db->query("SELECT accesso FROM utenti WHERE username='$username'"); 
    $row=$query->row(); 
    $accesso=$row->accesso;
    $this->db->query("UPDATE utenti SET ultimo_accesso = '$accesso' WHERE username = '$username'"); 
    ps utilizzo un framework
    Che mondo sarebbe senza Nutella.

    PHP/MYSQL/HTML/CSS/JAVASCRIPT

  10. #10
    a parte che, come ha detto optime, per ottenere il risultato che ti interessa ti basta fare
    UPDATE utenti SET ultimo_accesso = accesso

    ma hai letto la mia risposta?
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

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.