Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/04/2009, 22:25
nestoroc
 
Fecha de Ingreso: marzo-2009
Mensajes: 20
Antigüedad: 15 años, 2 meses
Puntos: 0
Problemas con WHILE

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 
;
        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.