Foros del Web » Programando para Internet » PHP »

Columnas con categoria y subcategoria desde mysql

Estas en el tema de Columnas con categoria y subcategoria desde mysql en el foro de PHP en Foros del Web. Hola a todos, tengo un problema en modificar una funcion del codigo original de un pack, este muestra 3 columnas con las categorias y sus ...
  #1 (permalink)  
Antiguo 06/05/2013, 12:11
 
Fecha de Ingreso: abril-2008
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
Pregunta Columnas con categoria y subcategoria desde mysql

Hola a todos, tengo un problema en modificar una funcion del codigo original de un pack, este muestra 3 columnas con las categorias y sus respectivas subcategorias desde una bd, y al modificar el stylo de la web para no desperdiciar espacios laterales me muestra un espacio vacio dentro de la pagina final.

imagen de como se ve:


imagen de como quiero que se vea:


El codigo de la funcion que me muestra 3 columnas con ese vacio donde debe ir la columna 4:
Código PHP:
Ver original
  1. function getCategoriesList(){//for the home
  2.     $ocdb=phpMyDB::GetInstance();
  3.     $query="SELECT name,friendlyName,idCategory from ".TABLE_PREFIX."categories where idCategoryParent=0 order by `order`";
  4.     $result=$ocdb->getRows($query);
  5.    
  6.                 $i =0;
  7.     $q = count($result);
  8.     $z = round($q/3);
  9.  
  10.     foreach ($result as $category ) {
  11.         $name=$category["name"];
  12.         $fcategory=$category["friendlyName"];
  13.         $idCat=$category["idCategory"];
  14.         if ($name!=""&&$fcategory!=""){
  15.            
  16.             if ($i==0 or $i==$z) $list.= '<div class="cats_col1 cats_colums">';
  17.             elseif ($i==($z*2)) $list.= '<div class="cats_col2 cats_colums">';
  18.  
  19.             $url=catURL($fcategory);   
  20.            
  21.             $list.= '<ul><li class="cathead"><a title="'.$name.'" href="'.SITE_URL.$url.'">'.$name.'</a></li>';
  22.            
  23.             //get sub cats category
  24.                 $query="SELECT idCategory,name,friendlyName
  25.                     FROM ".TABLE_PREFIX."categories C
  26.                 where idCategoryParent!=0  and idCategoryParent=$idCat
  27.                 order by idCategoryParent, `order`";
  28.                 $result2=$ocdb->getRows($query);
  29.  
  30.  
  31.                 foreach ($result2 as $row ) {  
  32.                         $name2=$row['name'];
  33.                         $fcategory2=$row['friendlyName'];
  34.                         if ($fcategory!=""){
  35.                             $url=catURL($fcategory2,$fcategory);                 
  36.                             $list.= "<li><a title=\"$name2\" href=\"".SITE_URL."$url\">$name2</a></li>";
  37.                         }
  38.                  }
  39.             //end get sub cats category
  40.            
  41.             $list.= '</ul>';
  42.             if ($i==($z-1) or $i==(($z*2)-1) or $i==($q-1)) $list.='</div>';
  43.             $i++;
  44.         }   //if name        
  45.     } //for  
  46.    return $list;
  47. }

Codigo del estilo dimensiona las columnas, el cual se llama dentro de la funcion:

Código CSS:
Ver original
  1. #frontpage {padding: 10px 0px 10px 0px;}
  2. #frontpage_cats .cats_col1{width: 197px;float:left;margin-right:15px;}
  3. #frontpage_cats .cats_col2{width: 196px;float:left;}
  4. #frontpage_cats .cats_colums ul{list-style-type: none;margin-bottom: 15px;padding: 0px;border: none; padding:5px 8px; border:1px solid #ddd;}
  5. #frontpage_cats .cats_colums ul li {line-height:20px;padding:2px 0 2px 10px;background:url("bullet_1.gif") no-repeat left 8px; text-transform:lowercase; border-bottom:1px solid #ddd;}
  6. #frontpage_cats .cats_colums ul li.cathead {font-weight:bold; padding:0 0 2px 0; background:none; text-transform:uppercase;}
  7. #frontpage_cats .cats_colums ul li.cathead a {color:#5C8F47; text-decoration:none}
  8. #frontpage_cats .cats_colums ul li.cathead a:hover { text-decoration:underline;}

Como podran ver en la linea :
Código PHP:
Ver original
  1. $z = round($q/3);
para 4 columnas tendria que ser... y me muestra como en la imagen, las demas categorias se juntan en la ultima columna:
Código PHP:
Ver original
  1. $z = round($q/4);

Al parecer la modificacion tambien tiene que ser en las lineas :
Código PHP:
Ver original
  1. if ($i==0 or $i==$z) $list.= '<div class="cats_col1 cats_colums">';
  2.             elseif ($i==($z*2)) $list.= '<div class="cats_col2 cats_colums">';

y/o:
Código PHP:
Ver original
  1. if ($i==($z-1) or $i==(($z*2)-1) or $i==($q-1)) $list.='</div>';

pero ni idea de como hacer eso. Cabe decir que mis conocimientos en php son muy basicos (nivel novato).

toda ayuda sera bienvenida.

Etiquetas: columnas, mysql, select
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 19:48.