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

    [php & mysql] campo img deve essere uguale a campo id

    Ciao!
    Ho una tabella mysql con campo id auto_increment, per cui quando vado ad inserire un nuovo record non occorre che intervenga sul campo id, in quanto aumenta da solo.
    Il problema è che ho un campo img, che dovrebbe contenere il nome dell'immagine associata a quell'articolo, il cui nome appunto dovrebbe essere id_img.gif.
    Il punto è che quando preparo la query per l'inserimento non conosco il valore dell'id... Come ovviare a questo problema?

  2. #2
    Potresti inserire le due informazioni in due "momenti" differenti..

    Mi spiego meglio.

    Inserisci intanto il record..senza immagine e quindi avrai l'id incrementato..poi fai una select sull'ultimo record inserito..leggi l'id e poi fai un update con id_img

    Se mi sono spiegato male dimmelo che cerco di essere più chiaro

  3. #3
    ciao,

    devi fare due query.

    la prima sara' un insert con il nome del file e la seconda un update. devi fare le query una dietro l'altra. un esempio

    codice:
    insert into tabella (id, data, file, testo)
    values(NULL, now(), 'file.jpg', 'quel che vuoi');
    
    
    update tabella set
    file = concat(id,'_',file)
    where id = last_insert_id();
    ripeto... query a seguire e se provi con phpmyadmin devono essere nella stessa finestra di query, altrimenti perdi il last_insert_id(). Essendo uno script php, a termine script viene chiusa la connessione a mysql.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Originariamente inviato da piero.mac
    ciao,

    devi fare due query.

    la prima sara' un insert con il nome del file e la seconda un update. devi fare le query una dietro l'altra. un esempio

    codice:
    insert into tabella (id, data, file, testo)
    values(NULL, now(), 'file.jpg', 'quel che vuoi');
    
    
    update tabella set
    file = concat(id,'_',file)
    where id = last_insert_id();
    ripeto... query a seguire e se provi con phpmyadmin devono essere nella stessa finestra di query, altrimenti perdi il last_insert_id(). Essendo uno script php, a termine script viene chiusa la connessione a mysql.
    interessante.. non conoscevo questa funzione!! provo subito e poi vi faccio sapere

  5. #5

  6. #6
    Rieccomi...

    Io ho provato a fare così:

    Codice PHP:
    $insnewatt mysql_query ("insert into fn_attivita (id_attivita, titolo, testo, img, data_inserimento, status, homepage, download, filename, settore, autore)
    values(NULL, 'prova2', 'aaaaaaaaaaaaa', 'img.jpg', now(), 1, 0, 0, '', 2, 1"
    $db);

    $upidimg mysql_query ("update fn_attivita set img = concat(id_attivita,'_',img)
    where id_attivita = last_insert_id()"
    ,$db); 
    ma la seconda query non fa nulla... :master:

  7. #7
    deve essere un id autoincrement

    ci sono un paio di alternative.

    1) estrai l'id inserito con mysql_insert_id() e poi lo utilizzi nel where

    2) un work around....
    codice:
    $upidimg = mysql_query ("update fn_attivita set img = concat(id_attivita,'_',img)
    order by id_attivita desc LIMIT 1", $db);

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.