Comunidad de diseño web y desarrollo en internet online

¿mostrar solo visibe las subcategorias delas categorias

Citar            
MensajeEscrito el 20 May 2010 03:49 am
hola migos del foro , una consulta como tego un script de categorias y muestra resultados asi

perro
dog1
dog2
rosas
flor1
flor2

pero necesito que sean visibes las sub categorias cuando aga clik en una categoria


ejemplo

perro
dog1
dog2
rosas
solo son visibles por que hice clik en categoria perros


este es mi script agradesco a quien pueda ayudarme

Código PHP :

////////////////////////////////////////////////////////////////////////////////////////////////////////////////
<table width="113" border="0" cellpadding="0" cellspacing="0">
  <tr>
   <td><span class="Estilo1"><b>Productos:<br/><br/></b></span></td>
     </tr>
    <?
    //////////////////////////////////////////////////////////
   $link=Conectarse();
   $result=mysql_query("select idcategoria, nombre from categorias where idusuario = '$idusuario'",$link);
   if ($row = mysql_fetch_array($result)){
   mysql_field_seek($result,0);
   while ($field = mysql_fetch_field($result)){
   } do {
   ?>
    <tr>
       <td><a href="index.php?idcategoria=<? echo $row[0] ?>" class="Estilo2"><b><? echo $row[1] ?></b></a></td>
       </tr>
      
    <?
   ///////////////////////////////////////////////////////////
   $idcategorialist = $row[0];
   $link=Conectarse();
   $result2=mysql_query("select idsubcategoria, nombre from subcategoria where idcategoria = '$idcategorialist' and idusuario = '$idusuario'",$link);
   if ($row2 = mysql_fetch_array($result2)){
   mysql_field_seek($result2,0);
   while ($field = mysql_fetch_field($result2)){
   } do {
   ?>               
         
   <tr>
      <td><table width="111" border="0" cellpadding="0" cellspacing="0">
         <tr>
            <td width="18%" valign="top"><div align="right"><span class="Estilo2">*</span>&nbsp;</div></td>
            <td width="82%"><a href="index.php?idsubcategoria=<? echo $row2[0] ?>&idcategoria=<? echo $row[0] ?>" class="Estilo4"><? echo $row2[1] ?></a></td>
         </tr>
    </table>
   </td>
    </tr>
   <?
   } while ($row2 = mysql_fetch_array($result2));
   } else {
   }
   ?>
   <?
   } while ($row = mysql_fetch_array($result));
   } else {
   }
   ?>
</table>

aydenme profavor mi jefe est furioso y ya llevo dias con este problema :shock:

Por swingbeach21

Claber

104 de clabLevel



 

msie
Citar            
MensajeEscrito el 20 May 2010 04:29 am
usa las etiquetas code para colocar codigo y para eso debes colocar un id de categoria padre para que te muestre los hijos

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 20 May 2010 07:49 am
@Talcual como creces, de seguro hace poco te decía lo mismo ^^

¬¬ hazle caso a Talcual sabe lo que dice.


en fin... me alegra tu post pues es exactamente lo que esta buscando para un tutorial ^^

como me aprovechare de tu codigo, me extenderé un poco mas de lo debido en la respuesta.

2 consejos escribió:



  1. el jefe siempre esta furioso, acostumbrate a ello, es la vida que elegiste U_U
  2. tu codigo se entiende muy poco asi es que daré un ejemplo a mi libre albedrío



necesitas formar un array multidimensional en base a una tabla sql

inventemos la tabla categorias:

Código MySQL :

id_cat, nombre_cat, padre_cat


donde padre_cat es el id de la categoria superior, en caso de ser 0 sencillamente es una categoria base
ahora haremos una sencilla consulta:

Código MySQL :

 SELECT id_cat, nombre_cat, padre_cat FROM categorias

ejecutamos la consulta y esta nos retornara un array, con este array a su ves formaremos un nuevo array(ojo con la sintaxis de foreach)

Código PHP :

foreach($sqlCategorias as $c){
$categorias[$c['padre_cat']][$c['id_cat']]= $c['nombre_cat'];
}


atencion escribió:

ojo con la funcion de php array_key_exists


ahora por fin tienes los datos para mostrar tus categorías y en tu vista (osea donde mostraras el html )
usaras el arreglo asi

Código PHP :

<ul>
<?php foreach($categorias[0] as $c): /* cuando padre es 0 es una categoría base */ ?>
   <li class='categoria'> <?php  echo $c['nombre_cat'] ?>
     <?php if(array_key_exists($c['id_cat'],$categorias)): ?>
         <ul>
             <?php foreach($categorias[$c['id_cat']] as $s): /* esta sintaxis para foreach la uso solo en las vistas junto al html */ ?>
                  <li class='sub-categoria'><?php  echo $s['nombre_cat'] ?></li>
              <?php endforeach; ?>
          </ul>
     <?php endif; ?>
   </li>
<?php endforeach; ?>
</ul>

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.