Columnas con categoria y subcategoria desde mysql

Iniciado por byway, 6 Mayo 2013, 23:45 PM

0 Miembros y 1 Visitante están viendo este tema.

byway

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) [Seleccionar]

function getCategoriesList(){//for the home
    $ocdb=phpMyDB::GetInstance();
    $query="SELECT name,friendlyName,idCategory from ".TABLE_PREFIX."categories where idCategoryParent=0 order by `order`";
    $result=$ocdb->getRows($query);
   
    $i =0;
$q = count($result);
$z = round($q/3);

    foreach ($result as $category ) {
        $name=$category["name"];
        $fcategory=$category["friendlyName"];
        $idCat=$category["idCategory"];
        if ($name!=""&&$fcategory!=""){
           
            if ($i==0 or $i==$z) $list.= '<div class="cats_col1 cats_colums">';
    elseif ($i==($z*2)) $list.= '<div class="cats_col2 cats_colums">';

        $url=catURL($fcategory);
       
        $list.= '<ul><li class="cathead"><a title="'.$name.'" href="'.SITE_URL.$url.'">'.$name.'</a></li>';
       
        //get sub cats category
            $query="SELECT idCategory,name,friendlyName
    FROM ".TABLE_PREFIX."categories C
        where idCategoryParent!=0  and idCategoryParent=$idCat
        order by idCategoryParent, `order`";
                $result2=$ocdb->getRows($query);


                foreach ($result2 as $row ) {
                    $name2=$row['name'];
                    $fcategory2=$row['friendlyName'];
                    if ($fcategory!=""){
                    $url=catURL($fcategory2,$fcategory);              
                    $list.= "<li><a title=\"$name2\" href=\"".SITE_URL."$url\">$name2</a></li>";
                    }
                 }
        //end get sub cats category
       
        $list.= '</ul>';
        if ($i==($z-1) or $i==(($z*2)-1) or $i==($q-1)) $list.='</div>';
    $i++;
        } //if name       
    } //for 
   return $list;
}


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

Código (css) [Seleccionar]

#frontpage {padding: 10px 0px 10px 0px;}
#frontpage_cats .cats_col1{width: 197px;float:left;margin-right:15px;}
#frontpage_cats .cats_col2{width: 196px;float:left;}
#frontpage_cats .cats_colums ul{list-style-type: none;margin-bottom: 15px;padding: 0px;border: none; padding:5px 8px; border:1px solid #ddd;}
#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;}
#frontpage_cats .cats_colums ul li.cathead {font-weight:bold; padding:0 0 2px 0; background:none; text-transform:uppercase;}
#frontpage_cats .cats_colums ul li.cathead a {color:#5C8F47; text-decoration:none}
#frontpage_cats .cats_colums ul li.cathead a:hover { text-decoration:underline;}


como ven en la linea:
Código (php) [Seleccionar]
$z = round($q/3);

para 4 columnas seria:
Código (php) [Seleccionar]
$z = round($q/4);

y al parecer la modificacion tambien es en las lineas:
Código (php) [Seleccionar]
if ($i==0 or $i==$z) $list.= '<div class="cats_col1 cats_colums">';
    elseif ($i==($z*2)) $list.= '<div class="cats_col2 cats_colums">';


y/o :
Código (php) [Seleccionar]
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.