Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/05/2010, 18:42
abuitrago81
 
Fecha de Ingreso: mayo-2010
Mensajes: 41
Antigüedad: 14 años
Puntos: 0
Ayuda para solucionar problemilla con PHP.

Hola a todos lo primero.
Estoy haciendo un foro en PHP y MySQL ( algo sencillito ), el caso es que estoy atascado en una cosa que os cuento.
Estoy en la página principal donde salen todos los foros, y a la derecha el numero de temas, el numero de mensajes y el ultimo mensaje, bueno pues mi problema está con el último mensaje.
Tengo hechas 3 tablas:
CATEGORIAS (id_categoria, nombre, descripcion),
TEMAS (id_tema, descripcion, categoria, autor, fecha),
MENSAJES (id_mensaje, mensaje, categoria, tema, acutor, fecha).

Bueno pues en la zona del ultimo mensaje he conseguido que salga el autor y la fecha del ultimo mensaje de ese foro, el problema me viene en sacar también el nombre del tema ( campo descripcion de la tabla TEMAS ).

Yo estoy sé sacarlo con una subselect, el caso es que las tablas no estan relacionadas y no me deja hacer MENSAJES(tema) clave ajena de TEMAS(id_tema), ni tampoco me deja usar IN para la subselect.
Total que he intentado recoger en la select q me da el autori y la fecha el "tema" taambién, y con el hacer otra select tal que "SELECT descripcion FROM temas WHERE id_temas = ( el tema q he cogido de la primera consulta), pero me sale un error de MySQL...

¿Dónde puede estar el error?
Gracias por adelantado.

Paso el código:
Código HTML:
<table class="table_foros" width="950" align="center">
  <tr>
    <td colspan="2" bgcolor="#000033"><img src="imagenes/48x5px.png" width="48" height="5" />FORO</td>
    <td width="272" align="center" bgcolor="#000033">&Uacute;LTIMO MENSAJE</td>
    <td width="109" align="center" bgcolor="#000033">TEMAS</td>
    <td width="111" align="center" bgcolor="#000033">MENSAJES</td>
  </tr>
  <?php do { ?>
  <?php
  mysql_select_db($database_foro, $foro);
  $publicacion_sql = "SELECT id_mensaje FROM mensajes WHERE categoria = ".$row_foro_disenioweb['id_categoria'];
  $temas_sql = "SELECT id_temas FROM temas WHERE categoria = ".$row_foro_disenioweb['id_categoria'];
  $ultimo_sql = "SELECT tema, autor, fecha FROM mensajes WHERE categoria = ".$row_foro_disenioweb['id_categoria'] .  " ORDER BY fecha DESC LIMIT 1";
   
  
  $uPost = mysql_query($ultimo_sql) or die (mysql_error());
  $a = mysql_fetch_assoc($uPost);
  $nTema = $a['tema'];
  
  $uTema = "SELECT descripcion FROM temas WHERE id_temas = " . $nTema ;
  $uTemaVer = mysql_query($uTema) or die (mysql_error());
  
  $pTotales = mysql_query($publicacion_sql) or die (mysql_error());
  $pTemasTotales = mysql_query($temas_sql) or die (mysql_error());
  ?>
  <tr>
    <td width="45" align="center"><img src="imagenes/folder.png" width="40" height="40" /></td>
    <td width="389"><span class="table_foros"><a href="categorias.php?cat=<?php echo $row_foro_disenioweb['id_categoria']; ?>"><?php echo $row_foro_disenioweb['nombre']; ?></a></span><br /> <span class="table_foros_descripcion"><?php echo $row_foro_disenioweb['descripcion']; ?></span><br /></td>
    <td align="left"><?php 		$up = mysql_fetch_assoc($uPost);
                                                                $ut = mysql_fetch_assoc($uTemaVer);
				echo '<span class="table_foros_fechas">';
				echo $ut['descripcion'];
				echo '</span>';
                                                                echo '<br />';
				echo '<span class="table_foros_fechas">';
				echo ' por   ';
				echo '</span>';
				echo '<span class="table_foros_autores">';
				echo $up['autor'];
				echo '</span>';
				echo '       ';
				echo '<span class="table_foros_fechas">';
				echo $up['fecha'];
				echo '</span>';
				?>
                     </td>
    <td align="center"><span class="table_foros_recuentos"><?php echo mysql_num_rows($pTemasTotales); ?></span></td>
    <td align="center"><span class="table_foros_recuentos"><?php echo mysql_num_rows($pTotales); ?></span></td>
  </tr>
  <?php } while ($row_foro_disenioweb = mysql_fetch_assoc($foro_disenioweb)); ?>
</table>



</body>
</html>
<?php

mysql_free_result($foro_disenioweb);

?> 

Última edición por abuitrago81; 07/05/2010 a las 18:50