Foros del Web » Programando para Internet » PHP »

Cual es el error en el siguiente codigo?

Estas en el tema de Cual es el error en el siguiente codigo? en el foro de PHP en Foros del Web. Hola , a ver si me pueden ayudar, el siguiente script es para mostrar categorias y sub categorias en forma de menú, no puedo encontrar ...
  #1 (permalink)  
Antiguo 18/09/2012, 18:18
 
Fecha de Ingreso: noviembre-2007
Mensajes: 2
Antigüedad: 16 años, 5 meses
Puntos: 0
Cual es el error en el siguiente codigo?

Hola , a ver si me pueden ayudar, el siguiente script es para mostrar categorias y sub categorias en forma de menú, no puedo encontrar el error, pero en vez de mostrarme la cadena de caracteres con el nombre de la categoria, me muestra numeros y letras

[URL="http://deventas.tk/alternativa/"]aca pueden ver a lo que me refiero[/URL]

Codigo:
Código PHP:
<?php 
            $sql 
'SELECT * FROM categoria WHERE id_padre=0';
            
$result mysql_query($sql);
            
$padre mysql_fetch_assoc($result);
            foreach (
$padre as $p){ ?>
                <li >
                      <ul class="nav">
                        <li class="dropdown">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                                                        <?php echo $p['nombrecat'?><b class="caret"></b>
                            </a>
                                                    <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
                                                        <?php  
                                                $sql2 
mysql_query("SELECT * FROM categoria WHERE id_padre = '$id'");
                              
$child mysql_fetch_assoc($sql2);
                              foreach (
$child as $c){ ?>
                                  <li><a tabindex="-1" href="#">
                                                                      <?php echo $c['nombrecat']; ?>
                                                                      </a>
                                                                </li>
                              <?php ?> 
                              </ul>
                        </li>
                    </ul>
                            </li>
<?php ?>
Datos de la tabla:

id_categotia | nombrecat | id_padre
----------------------------------------------------
int(11) | varchar(30) | int(11)
  #2 (permalink)  
Antiguo 18/09/2012, 18:23
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Cual es el error en el siguiente codigo?

Supongo que estás usando $c['algo'] en vez de $c a secas.
__________________
(:
  #3 (permalink)  
Antiguo 18/09/2012, 18:33
 
Fecha de Ingreso: junio-2009
Mensajes: 138
Antigüedad: 14 años, 10 meses
Puntos: 4
Respuesta: Cual es el error en el siguiente codigo?

No soy el gran experto pero trata con esto..

Código PHP:
Ver original
  1. <?php
  2.  
  3. $sql = 'SELECT * FROM categoria WHERE id_padre=0';
  4. $result = mysql_query($sql);
  5.  
  6. while($padre = mysql_fetch_array($result))
  7. {
  8.     $sql2 = mysql_query("SELECT * FROM categoria WHERE id_padre = '$id'");
  9.     while($child = mysql_fetch_array($sql2))
  10.     {
  11.         echo '
  12.             <li >
  13.                 <ul class="nav">
  14.                     <li class="dropdown">
  15.                         <a href="#" class="dropdown-toggle" data-toggle="dropdown">'
  16.                             . $padre['nombrecat']. '<b class="caret"></b>
  17.                         </a>
  18.                 <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
  19.                     <li>
  20.                         <a tabindex="-1" href="#">'
  21.                             . $child['nombrecat'] . '
  22.                         </a>
  23.                     </li>  
  24.                 </ul>
  25.                     </li>
  26.                 </ul>
  27.             </li>
  28.         ';
  29.     }
  30. }
  31. ?>

Además de donde sacas el $id para hacer la comparación en la segunda query?
  #4 (permalink)  
Antiguo 18/09/2012, 19:20
Avatar de dany0425  
Fecha de Ingreso: julio-2012
Ubicación: Colombia
Mensajes: 16
Antigüedad: 11 años, 8 meses
Puntos: 3
Respuesta: Cual es el error en el siguiente codigo?

See como dijo Lokitozzz creo que tu error está en las variables, y te recomiendo usar while o en su defecto do while ;D
  #5 (permalink)  
Antiguo 18/09/2012, 20:16
 
Fecha de Ingreso: noviembre-2007
Mensajes: 2
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Cual es el error en el siguiente codigo?

ups! tratando de acomodar el codigo borre una linea del codigo que les deje antes

igualmente muchas gracias por sus ayudas

Lokitozzz en tu código solo había un pequeño error donde por cada categoría hija iba a crear un menu padre, pero me sirvió mucho el código que me pasaste, sobre todo lo de hacerlo con un while

Correciones:
Código PHP:
<?php 
                        $catPadre 
'SELECT * FROM categoria WHERE id_padre=0';
                        
$resultPadre mysql_query($catPadre);
                        while (
$padre mysql_fetch_array($resultPadre)){?>
                            <li >
                                <ul class="nav">
                                    <li class="dropdown">
                                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                                            <?php echo $padre['nombrecat'?>
                                            <b class="caret"></b>
                                        </a>
                                        <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
                                            <?php  
                                            $id 
$padre['id_categoria'];
                                            
$catHijo "SELECT * FROM categoria WHERE id_padre = '$id'";
                                            
$resultHijo mysql_query($catHijo);
                                            while (
$hijo mysql_fetch_array($resultHijo)){?>
                                                <li>
                                                    <a tabindex="-1" href="#">
                                                        <?php echo $hijo['nombrecat'?>
                                                    </a>
                                                </li>
                                            <?php ?> 
                                        </ul>
                                     </li>
                                </ul>
                            </li>
                        <?php ?>
[URL="http://deventas.tk/alternativa/"] acá dejo como queda finalmente[/URL]

Etiquetas: mysql, siguiente, sql, tabla
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 13:11.