gestire commenti e risposte ...

Daniele Rapinesi

Utente Attivo
7 Gen 2014
60
0
0
Ciao a tutti,
sto facendo una pagina dove voglio visualizzare i commenti e le eventuali risposte per una palestra.
Quando entro nella pagina della palestra selezionata ho tutti i dettagli della struttura e gli eventuali commenti.
Ho una tabella che contiene i commenti e una le risposte. Per visualizzare i commenti eseguo una query e con un ciclo While li mostro a video. Fino a qui tutto ok. Il problema si pone quando all'interno del ciclo While voglio far visualizzare le risposte: dovrei fare un altro ciclo While, ma php non permette un ciclo while dentro un altro. Come fare? Di seguito la query che visualizza i commenti (se ho 3 commenti diversi li visualizza tutti e 3, ma come faccio ad inserire le risposte ad ogni commento all'interno del ciclo?
Io volevo visualizzare i commenti e ad ognuno mostrare le eventuali risposte, ma proprio non ci riesco.
C'è un altro modo per visualizzare i commenti e le risposte senza usare questo sistema?
GRAZIE !!

mysql_connect("127.0.0.1","root","") or die ("non mi posso connettere al database");
mysql_select_db("gym") or die ("non posso selezionare il db");


$query = "SELECT * FROM tbl_commenti";
$result = mysql_query($query);

while ($row = mysql_fetch_row($result)) {
echo "ID: $row[1]";
echo "<br>";
echo "Commento: $row[3]";
echo "<br>";
echo "Data: $row[4]";
echo "<br>";
echo "<br>";
}
 
Da quando php non permette un ciclo while dentro un altro? Sempre usato e sempre funzionato.

Inviato con Tapatalk Free da Android
 
Avete ragione, scusate, avevo commesso io un errore !!!
Ok ho inserito un ciclo While dentro un altro ciclo While per ottenere tutti i commenti inseriti nella tabella e le relative risposte. Nella tabella ho inserito 2 commenti ed in quella delle risposte, 2 per ogni commento. Quando parte il ciclo mi stampa il primo commento e tutte e quattro le risposte senza darmi il secondo commento (è come se eseguisse il ciclo While, trova il primo commento, esegue il secondo ciclo completo (con le 4 risposte) e poi si ferma).
Sicuramente ho sbagliato qualcosa io, vi inserisco il codice e ..... spero possiate aiutarmi. Grazie ??

<?php
$query = "SELECT * FROM tbl_commenti WHERE idpalestra = $idpalestra";
$res = mysql_query($query);
$row = mysql_fetch_assoc ($res);

if (mysql_num_rows($res)>0)
{
$query = "
SELECT
tbl_commenti.idcommento, tbl_commenti.idpalestra, tbl_commenti.commento, tbl_commenti.data_inserimento, tbl_user.nome, tbl_risposta_commenti.idrisposta, tbl_risposta_commenti.id_commento, tbl_risposta_commenti.id_utente, tbl_risposta_commenti.risposta, tbl_risposta_commenti.data_inserimento_r FROM tbl_commenti JOIN tbl_user ON tbl_commenti.idutente = tbl_user.id_utente JOIN tbl_risposta_commenti ON tbl_commenti.idcommento = tbl_risposta_commenti.id_commento WHERE idpalestra = '$idpalestra' ORDER BY idcommento";

$res = mysql_query($query);
while ($row = mysql_fetch_assoc($res)){
$idcommento = $row['idcommento'];
?>
<table width="100%" cellspacing="2" border="0">
<tr><td>In data <?php echo $row['data_inserimento'] ?></td></tr>
<tr><td>l'utente <?php echo $row['nome'] ?> ha scritto:</td></tr>
<tr><td><?php echo $row['commento'] ?></td></tr>
<tr><td>&nbsp;</td></tr>

<?php
$query = "SELECT * FROM tbl_risposta_commenti WHERE id_commento = $idcommento";
$res = mysql_query($query);
$row = mysql_fetch_assoc ($res);
if (mysql_num_rows($res)>0) {
$query = "SELECT tbl_commenti.idcommento, tbl_commenti.idpalestra, tbl_commenti.commento, tbl_commenti.data_inserimento, tbl_user.nome, tbl_risposta_commenti.idrisposta, tbl_risposta_commenti.id_commento, tbl_risposta_commenti.id_utente, tbl_risposta_commenti.risposta, tbl_risposta_commenti.data_inserimento_r FROM tbl_commenti JOIN tbl_user ON tbl_commenti.idutente = tbl_user.id_utente JOIN tbl_risposta_commenti ON tbl_commenti.idcommento = tbl_risposta_commenti.id_commento WHERE idpalestra = '$idpalestra' ORDER BY idcommento";

$res = mysql_query($query);
while ($row = mysql_fetch_assoc($res)){
?>
<tr><td>In data <?php echo $row['data_inserimento_r'] ?></td></tr>
<tr><td>l'utente <?php echo $row['nome'] ?> ha risposto:</td></tr>
<tr><td><?php echo $row['risposta'] ?></td></tr>
<tr><td>&nbsp;</td></tr>
<?php
}
} else {echo "no risposte";}
?>
</table>
<?php
}
}

else {
echo "Non ci sono commenti per questa struttura";
}
?>
 

Discussioni simili