Foros del Web » Programando para Internet » PHP »

Repeticion de items en consulta con listas anidadas.

Estas en el tema de Repeticion de items en consulta con listas anidadas. en el foro de PHP en Foros del Web. Estimados, Tengo el siguiente problema: Estoy armando un sitio, en el que tengo una base de datos con una tabla llamada categorias, en donde listo ...
  #1 (permalink)  
Antiguo 07/09/2012, 02:39
 
Fecha de Ingreso: junio-2009
Mensajes: 10
Antigüedad: 14 años, 10 meses
Puntos: 1
Repeticion de items en consulta con listas anidadas.

Estimados,

Tengo el siguiente problema:

Estoy armando un sitio, en el que tengo una base de datos con una tabla llamada categorias, en donde listo las categorias de productos (bicicletas) la clave primaria es id_cat.

Tengo otra tabla llamada productos, en donde van los productos, su informacion, la url de las imagenes,etc... La clave principal es producto_id, y tengo un campo donde guardo el id_cat de la tabla categorias, y asignarle un padre.

Creé un asistente para ingresar los productos, se guardan bien los datos, pero al momento de desplegarlos en el menu de la pagina no aparece en el lugar correcto, sino que se repite la categoria. Es dificil de explicar, pero les adjunto la imagen para que les quede claro, y el codigo de la consulta que realizo.

PD: soy nuevo en PHP/MYSQL, y me ha costado, he leido todo y me sigue dando el problema por lo que estoy seguro que el problema esta entre el computador y la silla.

Esta es la consulta a la DB

Código PHP:
mysql_select_db($database_nuke_serv$nuke_serv);
$query_Recordset2 "SELECT t1.id_cat, t1.nombre_cat, t2.producto_id, t2.producto_cat , t2.producto_nombre FROM np_pdt_categorias AS t1 INNER JOIN np_productos t2 ON t2.producto_cat = t1.id_cat";
$Recordset2 mysql_query($query_Recordset2$nuke_serv) or die(mysql_error());
$row_Recordset2 mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 mysql_num_rows($Recordset2); 
Genero las listas anidadas (Codigo lo copie de internet):

Código PHP:
        <ul id="catalogo">
          <?php
// initialize variables
$previous '';
$first true;
do {
  
// if not the same value as $previous
  
if ($row_Recordset2['nombre_cat'] != $previous) {
    
// if not the first time, close the nested list
    
if (!$first) {
      echo 
'</ul></li>';
    }
    
// display the category
    
echo '<li><a href="#">' $row_Recordset2['nombre_cat'].'</a>';
    
// open the nested list
    
echo '<ul>';
    
// store the current value for comparison next time
    
$previous $row_Recordset2['nombre_cat'];
  }
  
// display the subcategories
  
echo '<li class="subcat"><a href="catalogo.php?producto=' $row_Recordset2['producto_id'] .'">'$row_Recordset2['producto_nombre'] .'</a>';
'</li>';
  
// it's no longer the first time
  
$first false;
  } while (
$row_Recordset2 mysql_fetch_assoc($Recordset2)); ?>
        </ul>
        </li>
        </ul>
Aqui el resultado:

https://www.dropbox.com/s/xh1ovorz265q3q7/screenshot.jpg


Agradecido de antemano por su ayuda y tirones de orejas por cualquier error.
Saludos desde Chile.
  #2 (permalink)  
Antiguo 07/09/2012, 10:25
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Repeticion de items en consulta con listas anidadas.

Bueno, el problema no lo tienes en el listado, porque te está mostrando correctamente lo que hay en la tabla; soluciona "el asistente" que fue quien agregó otra categoría en vez de usar la existente.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 07/09/2012, 16:53
 
Fecha de Ingreso: junio-2009
Mensajes: 10
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Repeticion de items en consulta con listas anidadas.

Triby gracias por tu pronta respuesta!

Revise el tema del asistente, y para salir de dudas ingrese un producto directo via phpmyadmin, obteniendo el mismo resultado.

He probado de todo :(

Saludos!
  #4 (permalink)  
Antiguo 07/09/2012, 18:53
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Repeticion de items en consulta con listas anidadas.

Te aparecen dos categorias en la tabla o es solo al hacer la consulta?
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 07/09/2012, 19:10
 
Fecha de Ingreso: junio-2009
Mensajes: 10
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Repeticion de items en consulta con listas anidadas.

solo al hacer la consulta y generar la lista. De hecho revise las tablas en phpmyadmin y estan guardadas tal como corresponde. Por eso creo que hay algo de mal que no he pillado en el codigo de la lista.
  #6 (permalink)  
Antiguo 07/09/2012, 19:34
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Repeticion de items en consulta con listas anidadas.

Entonces debes ordenar los resultados, prueba en PHPMyAdmin agregando esto a la consulta:

ORDER BY t2.producto_cat, t2.producto_nombre
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 07/09/2012, 19:46
 
Fecha de Ingreso: junio-2009
Mensajes: 10
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Repeticion de items en consulta con listas anidadas.

Estimado te pasaste, asunto solucionado. Gracias por tu tiempo y conocimiento, y mandame tus datos por interno para hacerte llegar unas cervecitas.

Muchas Gracias!

Etiquetas: items, listas, mysql, repeticion, sql, tabla, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:49.