Luego de pensar, leer y releer que esta pasando con este código, no logro llegar a nada.
Así que acudo a ustedes para que den una luz a la oscuridad donde estoy.
Me propuse aprender PHP, MySQL y a golpes he logrado avanzar un poco. Comencé un pequeño sistema de noticias y lo he venido modificando y jugando con él.
Ahora estoy en un lío que no entiendo y por eso pido su ayuda.
Tengo este código para listar noticias:
Código PHP:
<?php
$_bd_->_sql_consulta("SELECT * FROM ".prefijo."noticias ORDER BY fecha_publicacion", "simple");
?>
<table border="1" width="90%">
<tr>
<td width="15%"><h3>ID</h3></td>
<td width="40%"><h3>Título</h3></td>
<td width="15%"><h3>Categoría</h3></td>
<td width="30%"><h3>Fecha</h3></td>
</tr>
<?php
while($fila = $_bd_->_sql_fetch_array())
{
?>
<tr>
<td><?php echo $fila["id"] ?></td>
<td><?php echo $fila["titulo"] ?></td>
<td>---</td>
<td><?php echo $fila["fecha_publicacion"] ?></td>
</tr>
<?php
}
?>
</table>
Que me produce el siguiente listado:
nestorovallos.com/forosdelweb/listado0.jpg
Hasta aquí todo bien el problema comienza cuando ingreso este while :
Código PHP:
<?php
while($fila = $_bd_->_sql_fetch_array())
{
?>
<tr>
<td><?php echo $fila["id"] ?></td>
<td><?php echo $fila["titulo"] ?></td>
<td><?php
$_bd_->_sql_consulta("SELECT c.id AS cid, c.nombre AS categoria, c.descripcion AS descripcion FROM ".prefijo."categorias c INNER JOIN ".prefijo."not_cat cn ON cn.id_categoria = c.id WHERE cn.id_noticia = ".$fila["id"]." ORDER BY c.nombre ASC", "simple");
while ($cat = $_bd_->_sql_fetch_array())
{
echo '<a href="#" title="'.$cat["categoria"].'">'.$cat["categoria"].'</a> <br> ';
}
?></td>
<td><?php echo $fila["fecha_publicacion"] ?></td>
</tr>
<?php
}
?>
Es una nueva consulta para listar la categoría o categorías a las que se relaciona la noticia. Produce esto:
nestorovallos.com/forosdelweb/listado1.jpg
Aquí comienza mi problema ya que no continúa el listado sólo lista la primera noticia.
Si intento algo (por prueba) como este código:
Código PHP:
</tr>
<?php
while($fila = $_bd_->_sql_fetch_array())
{
?>
<tr>
<td><?php echo $fila["id"] ?></td>
<td><?php echo $fila["titulo"] ?></td>
<td><?php
$a = 0 ;
while ($a<3)
{
echo " - 1<br>";
++ $a;
}
?></td>
<td><?php echo $fila["fecha_publicacion"] ?></td>
</tr>
<?php
}
?>
Produce esto:
nestorovallos.com/forosdelweb/listado3.jpg
En otras palabras (parecerá algo tonto, pero recuerden que estoy aprendiendo) con este while logro ver que se cumple y sigue el listado. Y me dice que el problemas puede estar (creo yo) en el while donde tengo la consulta de categorias. Y pues en definitiva no lo veo.
AYUDA
¿Por qué no continúa el listado?
Gracias de antemano por tomarse la molestia de leer quizá tan larga e innecesaria explicación pero no encuentro otra manera de explicarme mejor.
P.D. Agradezco igualmente su ayuda.