Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/11/2012, 12:56
Avatar de catpaw
catpaw
 
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años
Puntos: 23
mecanismo para comprobar si hay resultados se muestren y si no no

hola forer@s aqui dando lata como siempre

veran tengo una situación media rara, tengo las siguientes consultas, que como resultado me dan un arbol, algo asi:

carpeta1:
---------->archivo
---------->subcarpeta
----------------------->archivo
---------->subcarpeta
carpeta2:
---------->archivo
---------->subcarpeta
----------------------->archivo
---------->subcarpeta
----------------------->archivo

Código PHP:
Ver original
  1. <ul>
  2. <?php
  3. $rs1 = mysql_query("select * from carpetas order by id_carpeta ASC") or die (mysql_error());
  4. while($row1 = mysql_fetch_assoc($rs1, MYSQL_ASSOC)){
  5.          $id_carpeta = $row1['id_carpeta'];
  6.          echo "<li>".$row1['nombre_carpeta']."</li>";
  7.          //hago consulta consulta para buscar los archivos en raiz
  8.          $rs2 = mysql_query("select * from archivos where id_carpeta='$id_carpeta' and id_subcarpeta='0'"); //si es 0 significa que esta en raiz
  9.          while($row2 = mysql_fetch_assoc($rs2, MYSQL_ASSOC)){
  10.                    echo "<li>".$row2['nombre_archivo']."</li>";
  11.          }
  12.          echo "<ul>";
  13.             //hago consulta para listar las subcarpetas
  14.             $rs3 = mysql_query("select * from archivos_raiz where id_carpeta='$id_carpeta'");
  15.             while($row3 = mysql_fetch_assoc($rs3, MYSQL_ASSOC)){
  16.                    $id_sub_carpeta = $row1['id_sub_carpeta'];        
  17.                    echo "<li>".$row3['nombre_subcarpeta']."</li>";
  18.                    //hago consulta para listar archivos dentro de las subcarpetas
  19.                    echo "<ul>";
  20.                       $rs4 = mysql_query("select * from archivos where id_carpeta='$id_carpeta' and id_subcarpeta='$id_sub_carpeta'");
  21.                       while($row4 = mysql_fetch_assoc($rs4, MYSQL_ASSOC)){
  22.                               echo "<li>".$row4['nombre_archivo']."</li>";
  23.                    }
  24.                    echo "</ul>";
  25.             }
  26.          echo "</ul>";        
  27. }

Como podrán ver hago consultas dentro de las consultas y funciona bien, peeeerooooo

si por ejemplo, no hay archivo en alguna carpeta o subcarpeta me sigue muestrando:

carpeta1:
---------->subcarpeta
---------->subcarpeta

carpeta2:
---------->subcarpeta
---------->subcarpeta
----------------------->archivo

y me gustaría que no me mostrara nada si no tiene archivo:

carpeta2:
---------->subcarpeta
----------------------->archivo

Entonces me imagino que para lograr esto necesitaria hacer toda la misma consulta (incluyendo las consultas dentro de las consultas) al principio de todo y poner banderas de si hay o no hay archivos

para que antes de que empiece la consulta "principal" poner if(banderas on){ se muestre la consulta si no que no se muestre, pero esta parte no la tengo muy clara como la podria hacer sin tener que repetir todaaa consulta y que ademas no creo que sea lo mas recomendable para el trafico a la base y la memoria y todo eso

o no se, ustedes que opinan??

gracias

Última edición por catpaw; 01/11/2012 a las 13:02