[PHP] Risposta a discussione forum

  • Creatore Discussione Creatore Discussione colomber
  • Data di inizio Data di inizio

colomber

Utente Attivo
4 Dic 2012
232
1
18
Salve non riesco a trovare una soluzione in php/sql forse qualcuno di voi può aiutarmi.

Sono nell'homepage del forum index.php dove ci sono tutte le discussioni ogni link delle discussione è una cosa di questo genere showtopic.php?id_discussione=44 , cliccando su una discussione entro nella pagina showtopic.php qui recupero tramite metodo get id_discussione , dopodiché eseguo una query e recupero tutti i dati relativi id_discussione e li stampo a video.

Ho due tabelle nel database una con dati relativi alla discussione(topic) e l'altra relativa alle risposte(post).

Nella stessa pagina come faccio ad inserire una risposta che andrà in coda alle altre già presenti?

mi da errore Undefined index: id_discussione
 
Ultima modifica:
Dovresti postare la struttura delle tabelle e il pezzo di codice che ti restituisce l'errore.
 
Ciao
Lasciando un secondo da parte l'errore Undefined index: id_discussione.

Per inviare una risposta ed aggiungerla in coda alle altre, o fai il classico form sulla stessa pagina eseguendo una query e ricaricandola con tutte le risposte oppure utilizzando ajax aggiornando solo il contenitore delle risposte evitando di ricaricare la pagina

Comunque come dice @livellacri se posti struttura db e codice possiamo aiutare.
 
  • Like
Reactions: colomber
0) session_start();
1) recupero id_discussione dall'url e lo inserisco in una variabile $_SESSION
2) apro la connessione.
3) eseguo una SELECT che in base all' id_discussione recupera i dati nel database e li stampa a video.

(fin qui tutto ok funzionante)

4) poi c'è il form per rispondere alla discussione, se il tasto del form viene premuto parte una INSERT che dovrebbe inserire la risposta ma mi da l'errore Undefined index: id_discussione.
5) chiudo la connessione.
 
Quindi il problema è nel recupero dell'id_discussione dallo script richiamato dal form.
Sei sicuro che hai inserito session_start(); anche in quello script?
 
Premetto che non capisco l'utilità di mettere id_discussione un una SESSION potendolo assegnare a una variabile normale.
PHP:
$id_discussione = $_GET['id_discussione'];

Detto questo una volta che hai fatto la SELECT e ti funziona vuol dire che id_discussione la hai!

E se il form di input è nella stessa pagina deve andare ameno che non hai chiuso la sessione prima del form perdendo cosi la variabile.
 
  • Like
Reactions: colomber
Trovato il problema!

Le avevo provate tutte così ho usato le SESSION ma mi son reso conto che non risolvevo e incasinavo il tutto le ho tolte.

Praticamente usavo nel form <?php echo $_SERVER['PHP_SELF'];?> e quando cliccavo sul form andava a showtopic.php e per quello non trovava l'id_discussione che non c'era più nell'url.


Grazie a tutti anche per la redirect sulla stessa pagina dopo l'INSERT per aggiornare la risposta subito.
 

Discussioni simili