Ver Mensaje Individual
  #6 (permalink)  
Antiguo 14/11/2010, 05:48
marina_mesas
 
Fecha de Ingreso: noviembre-2010
Mensajes: 48
Antigüedad: 14 años, 1 mes
Puntos: 5
Busqueda Respuesta: Ordenar alfabeticamente con php

Hola pateketrueke que alegria que me hayas respondido !

Este es el codigo del menu que carga index.php conjuntamente con el navegador (posteado anteriormente). Este se desordena una vez que ya seleccionastes la categoria deseada, como dije, cargar.... carga bien (de entrada). !

Código PHP:
Ver original
  1. <?php
  2. require_once 'config.php';
  3.  
  4.  
  5. function formatCategories($categories, $parentId)
  6. {
  7.    
  8.     $navCat = array();
  9.    
  10.  
  11.     $ids = array();
  12.     foreach ($categories as $category) {
  13.         if ($category['cat_parent_id'] == $parentId) {
  14.             $navCat[] = $category;
  15.         }
  16.        
  17.        
  18.         $ids[$category['cat_id']] = $category;
  19.     }  
  20.  
  21.     $tempParentId = $parentId;
  22.    
  23.  
  24.     while ($tempParentId != 0) {
  25.         $parent    = array($ids[$tempParentId]);
  26.         $currentId = $parent[0]['cat_id'];
  27.  
  28.        
  29.         $tempParentId = $ids[$tempParentId]['cat_parent_id'];
  30.         foreach ($categories as $category) {
  31.        
  32.             if ($category['cat_parent_id'] == $tempParentId && !in_array($category, $parent)) {
  33.                 $parent[] = $category;
  34.             }
  35.         }
  36.        
  37.        
  38.         array_multisort($parent);
  39.         $n = count($parent);
  40.         $navCat2 = array();
  41.        
  42.         for ($i = 0; $i < $n; $i++) {
  43.             $navCat2[] = $parent[$i];
  44.             if ($parent[$i]['cat_id'] == $currentId) {
  45.                 $navCat2 = array_merge($navCat2, $navCat);             
  46.             }
  47.         }
  48.        
  49.         $navCat = $navCat2;
  50.     }
  51.  
  52.  
  53.     return $navCat;
  54. }
  55.  
  56.  
  57. function getCategoryList()
  58. {
  59.     $sql = "SELECT cat_id, cat_name, cat_image
  60.             FROM tbl_category
  61.             WHERE cat_parent_id = 0 LIKE 'A%'
  62.             ";
  63.     $result = dbQuery($sql);
  64.    
  65.     $cat = array();
  66.     while ($row = dbFetchAssoc($result)) {
  67.         extract($row);
  68.        
  69.         if ($cat_image) {
  70.             $cat_image = WEB_ROOT . 'images/category/' . $cat_image;
  71.         } else {
  72.             $cat_image = WEB_ROOT . 'images/no-image-small.png';
  73.         }
  74.        
  75.         $cat[] = array('url'   => $_SERVER['PHP_SELF'] . '?c=' . $cat_id,
  76.                        'image' => $cat_image,
  77.                        'name'  => $cat_name);
  78.  
  79.     }
  80.    
  81.     return $cat;           
  82. }
  83.  
  84.  
  85. function getChildCategories($categories, $id, $recursive = true)
  86. {
  87.     if ($categories == NULL) {
  88.         $categories = fetchCategories();
  89.     }
  90.    
  91.     $n     = count($categories);
  92.     $child = array();
  93.     sort($child);
  94.     for ($i = 0; $i < $n; $i++) {
  95.         $catId    = $categories[$i]['cat_id'];
  96.         $parentId = $categories[$i]['cat_parent_id'];
  97.         if ($parentId == $id) {
  98.             $child[] = $catId;
  99.             if ($recursive) {
  100.                 $child   = array_merge($child, getChildCategories($categories, $catId));               
  101.             }  
  102.         }
  103.     }
  104.    
  105.     return $child;
  106. }
  107.  
  108. function fetchCategories()
  109. {
  110.     $sql = "SELECT cat_id, cat_parent_id, cat_name, cat_image, cat_description
  111.             FROM tbl_category
  112.             ORDER BY cat_name ASC";  //aqui ordeno el menu de forma ascendente
  113.     $result = dbQuery($sql);
  114.    
  115.     $cat = array();
  116.     while ($row = dbFetchAssoc($result)) {
  117.         $cat[] = $row;
  118.     }
  119.    
  120.     return $cat;
  121. }
  122.  
  123. ?>

Por ahi otro datito es que la pagina se carga nuevamente cada vez que pinchas sobre el menu, o sea que vuelve a llamar a todos los ficheros nuevamente (eso creo ya que ya que luego pinchar en el menu se va el orden "asc").

pateketrueke espero que se entienda, no? Cualquier detalle extra hacemelo saber, si!?

Un y espero que tengas un buen domingo!!

Última edición por marina_mesas; 14/11/2010 a las 05:55