Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/11/2008, 04:39
Avatar de Legoltaz
Legoltaz
 
Fecha de Ingreso: agosto-2008
Mensajes: 325
Antigüedad: 15 años, 8 meses
Puntos: 6
Problema con foro hecho completamente a mano

Hola a tod@s.

Me he propuesto hacer un foro básico totalmente a mano, usando PHP y MySQL.

He llegado a un punto donde no encuentro el origen del problema.

El problema es que cuando abro lo que sería un post (un hilo, tema o como se le quiera llamar) solo me muestra un comentario, y en la base de datos me aparecen todos los insertados. En cambio, como digo, solo me imprime uno.

Este es el código:

Código PHP:
Ver original
  1. <?php
  2. $accion = $_GET['accion'];
  3. $subforo = $_GET['subforo'];
  4. $mensaje = $_GET['mensaje'];
  5. if($accion == "indice" && isset($subforo) && is_numeric($subforo)){
  6.     require("bd.php");
  7.     $q = mysql_query("SELECT * FROM posts WHERE subforo = '".$subforo."' ORDER BY pid DESC",$link) or die(mysql_error());
  8.     while($row = mysql_fetch_array($q)){
  9.         echo "<a href='?accion=leer&subforo=".$subforo."&mensaje=".$row['pid']."'>".$row['titulo']."</a><br />";
  10.     }
  11. }
  12. elseif($accion == "leer" && isset($subforo) && isset($mensaje) && is_numeric($subforo) && is_numeric($mensaje)){
  13.     require("bd.php");
  14.     $leer = mysql_query("SELECT * FROM posts WHERE pid = '".$mensaje."' AND subforo = '".$subforo."' ORDER BY pid DESC",$link) or die(mysql_error());
  15.     $comentarios = mysql_query("SELECT * FROM comentarios WHERE id_post = '".$mensaje."' AND id_subforo = '".$subforo."'",$link) or die(mysql_error());
  16.     while($fila = mysql_fetch_array($leer) and $f = mysql_fetch_array($comentarios)){
  17.         echo "Autor: ".$fila['autor']."<br /><br />".$fila['titulo']."<br /><br />".$fila['mensaje']."<hr />".$f['autor']."dijo:<br /><br />".$f['comentario']."<hr /><br /><a href='?accion=form_replica&subforo=".$subforo."&mensaje=".$mensaje."'>Responder</a>";
  18.     }
  19. }
  20. elseif($accion == "form_replica" && isset($subforo) && is_numeric($subforo) && isset($mensaje) && is_numeric($mensaje)){
  21.     require("bd.php");
  22.     ?>
  23.     <form action="?accion=responder&subforo=<?php echo $subforo; ?>&mensaje=<?php echo $mensaje; ?>" method="post">
  24.     <input type="text" name="autor" />
  25.     <textarea name="comentario"></textarea>
  26.     <input type="submit" />
  27.     </form>
  28.     <?php
  29. }
  30. elseif($accion == "responder" && isset($subforo) && is_numeric($subforo) && isset($mensaje) && is_numeric($mensaje)){
  31.     require("bd.php");
  32.     $autor = $_POST['autor'];
  33.     $comentario = $_POST['comentario'];
  34.     mysql_query("INSERT INTO comentarios (id_post,id_subforo,autor,comentario) VALUES ('".$mensaje."','".$subforo."','".$autor."','".$comentario."')",$link) or die(mysql_error());
  35. }
  36. else{
  37. ?>
  38. <html>
  39. <body>
  40. <table>
  41. <tr><td><a href="?accion=indice&subforo=1">Subforo #1</a></td></tr>
  42. <tr><td><a href="?accion=indice&subforo=2">Subforo #2</a></td></tr>
  43. </table>
  44. </body>
  45. </html>
  46. <?php
  47. }
  48. ?>

Última edición por Legoltaz; 16/11/2008 a las 04:47