Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/03/2010, 17:14
Megcapkill
 
Fecha de Ingreso: abril-2007
Ubicación: Tandil, Bs As, Argentina
Mensajes: 106
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: Problema mostrando datos de la BD con dos while anidados

Cita:
Iniciado por nicolaslt Ver Mensaje
Buenas

estuve creando un sistema muy básico de foros.

Existe un foro, subforos, categorías y temas.

(cada subforo tiene varias categorias y una categoria tiene varios temas)

Éste código php lo hice para recorrer los subforos y de ahí mostrar las categorías que éste contiene:

Código PHP:

$query
="SELECT * FROM categorias WHERE foro='{$_GET['foro']}'";
$response=mysql_query($query);

$query="SELECT * FROM subforos WHERE foro='{$_GET['foro']}'";
$response2=mysql_query($query);



    while(
$row=mysql_fetch_assoc($response2))
    {
        echo 
"Categorías del subforo {$row['nombre']}<br/>";
        while(
$row2=mysql_fetch_array($response))
        {
            if(
$row2['subforo']==$row['nombre'])
            {
                echo 
"{$row2['categoria']}<br/>";
            }
        }
        echo 
"<br/>";
    } 
Después de hacer un par de pruebitas, me di cuenta que despues de mostrar las categorías del primer subforo, no muestra las del segundo porque no entra al while anidado.

Gracias por su atención, saludos!!
Hola nicolaslt.. creon que eso te pasa porque no volves a la posicion 0 del arreglo al puntero que recorre en el while de adentro.. lo arreglamos facil xD

Código PHP:

$query
="SELECT * FROM categorias WHERE foro='{$_GET['foro']}'";
$response=mysql_query($query);

$query="SELECT * FROM subforos WHERE foro='{$_GET['foro']}'";
$response2=mysql_query($query);



    while(
$row=mysql_fetch_assoc($response2))
    {
        echo 
"Categorías del subforo {$row['nombre']}<br/>";
        while(
$row2=mysql_fetch_array($response))
        {
            if(
$row2['subforo']==$row['nombre'])
            {
                echo 
"{$row2['categoria']}<br/>";
            }
        }
        echo 
"<br/>";
                
// Una vez que termino de usar el arreglo de los subforos, lo volvemos a la posicion 0
                
mysql_data_seek($response,0);
    } 
Creo que con eso ya esta xD

Probalo y avisame. Saludos!!