Home
  • Forum
  • PHP
  • Aggiornare dati dopo averli salvati su tabella

Aggiornare dati dopo averli salvati su tabella | PHP

Topic: Pubblico - Composto da 5 Posts di 3 Utenti.

04 Maggio, 2011 19:08 #1
ciro_ciro_oi
Utente

ciro_ciro_oi
Registrato: May, 2011
Posts: 3
Offline

Ciao a tutti,
questo è il mio post su questo forum!

Mi sto cimentando nella realizzazione di un pannello di controllo per l'amministrazione di un piccolo database attraverso l'uso di una serie di classi per la gestione della parte "DB". Ho cercato qui ed in altri forum la soluzione, ma niente da fare.

Ho un problema legato alla visualizzazione dopo il salvataggio dei dati in una tabella e la successiva visualizzazione aggiornata.
Per farla breve: una tabella di cui visualizzo titolo e parte del contenuto descrittivo record per record, seleziono il record da modificare, ne modifico il titolo, lo salvo (a livello di DB il dato viene salvato correttamente senza generare errori php) quando ritorno alla schermata da cui ero partito per la selezione del record da modificare, il dato che dovrebbe esser visualizzato con la modifica testuale inserita, non lo vedo, e devo fare il refresh della pagina del browser per vedere la modifica.

Spero di esser stato sufficientemente chiaro...
Dove sbaglio? è un errore concettuale (devo fare unset della var o altro)?

Grazie in anticipo.

04 Maggio, 2011 20:45 #2
john_revelator
Moderatore

john_revelator
Registrato: Jun, 2009
Posts: 270
Offline

Ciao e benvenuto. Senza uno straccio di codice è difficile aiutarti. Così come hai posto la domanda parrebbe che una volta fatta la modifica tu torni indietro tramite i pulsanti del browser e quindi è logico che debba fare un refresh.

Molto banalmente, una volta passati i dati da aggiornare, farei un semplice controllo basato su mysql_affected_rows() per verificare che l'aggiornamento sia andato a buon fine e, nel caso sia così, tramite un header("location: pagina.php") reindirizzerei alla pagina che vuoi. In questo modo avrai il contenuto aggiornato.

Ultima modifica 04 Maggio, 2011 20:46 di john_revelator


No PVT tecnici. Non rispondo nemmeno. Usate il forum.
My SO profile

16 Maggio, 2011 18:02 #3
ciro_ciro_oi
Utente

ciro_ciro_oi
Registrato: May, 2011
Posts: 3
Offline

Grazie per la risposta, e scusa per il ritardo nel mio reply!

Il problema nel postarti il codice è che mi risulta difficile, perchè dovrei copiaincollarti un bel pò di righe!
Provo ad esser però più chiaro, vediamo se ce la faccio!

ho una classe che mi gestisce tutta la parte lato DB con le varie funzioni di connessio al db, salvataggio modifiche/aggiunte su tabelle, cancellazioni, etc etc

Nel file nel quale i dati non si aggiornano ho del codice php all'inizio tipo:

1$db = new db();
2$q = $db->exec('SELECT * FROM tabella');
3$res = $db->results($q);

quando vado a modificare i dati, non faccio altro che stampare una tabella html con il contenuto che gìà è presente nella mia "resource" e poi con uno spam faccio un evento JS per rendere effettiva la modifica, il tutto nella forma:
1<span onclick="if (!confirm(\'Confermi la eliminazione di questo recor?\')) return;
2 window.location.href=\''.$_SERVER['PHP_SELF'].'?action=removerecord&id='.$id_record'].'\'">Elimina</span>

intercetto l'action ed effettuo la cancellazione che va a buon fine sul DB ma non la vedo aggiornata la prima volta, devo fare un refresh della pagina, infatti se aggiungo un print_r per controllare la risorsa qui
1$db = new db();
2$q = $db->exec('SELECT * FROM tabella');
3$res = $db->results($q);
4print_r($res);

anche dopo aver correttamente eliminato il record, senza il primo refresh della pagina il record lo vedo ancora.

Sono alle prime armi con le classi, e penso che il mio sia un errore "logico" perchè non rilascio la risorsa o non la aggiorno in qualche maniera.
Spero sia più comprensibile ora....

Ultima modifica 16 Maggio, 2011 18:04 di ciro_ciro_oi

28 Maggio, 2011 06:53 #4
ciro_ciro_oi
Utente

ciro_ciro_oi
Registrato: May, 2011
Posts: 3
Offline

Nessun suggerimento????

28 Dicembre, 2011 07:24 #5
ulivim
Utente

ulivim
Registrato: Dec, 2011
Posts: 2
Offline

Anche se in ritardo se ti può servire...

Da inserire nel file che visualizza i dati proprio come prima riga di codice.

1header("Cache-Control: no-cache, must-revalidate");
2        header('Pragma: no-cache');

Il tuo errore è dovuto alla cache del browser...inserendo quelle righe obblighi i browser a ricaricare la pagina ogni volta...

Condividi su:

Loggati o Registrati per replicare