Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Consultas MYSQL tablas enlazadas

Estas en el tema de Consultas MYSQL tablas enlazadas en el foro de Mysql en Foros del Web. Hola que tal buenos días, me gustaría que me ubicaran para poder hacer una consulta con las siguientes características... Tengo una base de datos con ...
  #1 (permalink)  
Antiguo 14/04/2014, 07:55
 
Fecha de Ingreso: diciembre-2012
Ubicación: .huihuihi
Mensajes: 21
Antigüedad: 11 años, 11 meses
Puntos: 0
Consultas MYSQL tablas enlazadas

Hola que tal buenos días, me gustaría que me ubicaran para poder hacer una consulta con las siguientes características... Tengo una base de datos con las siguientes tablas relacionadas ""

Y quiero sacar la información en forma de árbol o "diagrama" para poder ver el contenido de cuantas temas(y su encargado) tiene un área(y su encargado) y cuantas áreas tiene una dependencia(y su encargado)...

He echo algo pero me han dicho que con el "resultado" de la ultima consulta puedo generar la consulta siguiente sin hace JOINS, puro SELECT, hice algo pero la información se me muestra así:
  • Sector Principal
    • Dependencia
      • Obtención de Permisos.
        Opinión favorable para la Compra.
        Traslado de mercancía.
        Obtención de mercancía.
        Obtención de mercancía guardada.
        Obtención de Permiso de almacén.
        Refrendos.
        Obtención de Permisos.
        Opinión favorable para la Compra.
        Traslado de mercancía.
        Obtención de mercancía.
        Obtención de mercancía guardada.
        Obtención de Permiso de almacén.
        Refrendos.
        Obtención de Permisos.
        Opinión favorable para la Compra.
        Traslado de mercancía.
        Obtención de mercancía.
        Obtención de mercancía guardada.
        Obtención de Permiso de almacén.
        Refrendos.
        Obtención de Permisos.
        Opinión favorable para la Compra.
        Traslado de mercancía.
        Obtención de mercancía.
        Obtención de mercancía guardada.
        Obtención de Permiso de almacén.
        Refrendos.
        Obtención de Permisos.
        Opinión favorable para la Compra.
        Traslado de mercancía.
        Obtención de mercancía.
        Obtención de mercancía guardada.
        Obtención de Permiso de almacén.
        Refrendos.


Me gustaría que el query se detuviera solo con los temas contenidos en cada área, ya que dentro de cada tema hay muchos encargados, me gustaría poner bajo cada tema (o en paréntesis ) los encargados de ese tema... pero me salen tantas veces porque hay varios encargados.

Código PHP:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<?php
include("../php/class_conexion.php");
include(
"../php/class_operaciones.php");


$con = new conexion();
$op = new operaciones($con->getconexion());
$op2 = new operaciones($con->getconexion());



    
$query "
    select dep.nombre Dependencia , den.nombre Enlace, tem.tema Programa, are.nombre_area Area from dependencias dep, 
dependencia_encargados den, areas are, temas tem WHERE are.nombre_area LIKE '%sector%' AND dep.iddependencia = den.iddependencia AND 
    dep.iddependencia=are.iddependencia AND are.id_area = tem.id_area"
;
    
    
        
$row2 $op2->get_row($query);
        
$op->executa_query_rs($query);

        
?>
    


<?php
    
echo "<ul>";
    
            echo 
"<li>" $row2['Dependencia'] ;
        
             echo 
"<ul>";
            
                 echo 
"<li>" $row2['Area'];
                          echo 
"<ul>";
                           while( 
$row mysql_fetch_array($op->get_rs())){
                              echo 
"<li>" $row['Tema'];

                              echo 
"</li>";
                                        }
                          echo 
"</ul>";

                echo 
"</li>";
            
             echo 
"</ul>";
            echo 
"</li>";
        
        
        
$op->free_rs();
        
        
        echo 
"</ul>";
    
?>

Pude mostrar únicamente los temas de cada área con lo siguiente:

Código PHP:
$query "select dep.nombre Dependencia , tem.tema Programa, are.nombre_area Area from dependencias dep, 
    areas are, temas tem WHERE are.nombre_area LIKE '%sector%'  AND 
    dep.iddependencia=are.iddependencia AND are.id_area = tem.id_area"

  • Sector Principal
    • Dependencia
      • Obtención de Permisos.
        Opinión favorable para la Compra.
        Traslado de mercancía.
        Obtención de mercancía.
        Obtención de mercancía guardada.
        Obtención de Permiso de almacén.
        Refrendos.


Con que consulta podría sacar únicamente a los encargados de cada tema? y ponerlos si están o no encargados en cada tema?

por ejemplo...
  • Sector Principal
    • Dependencia
      • Obtención de Permisos.
        Juan, Maria,Rosa
        Opinión favorable para la Compra.
        Juan, Maria
        Traslado de mercancía.
        Rosa
        Obtención de mercancía.
        Maria
        Obtención de mercancía guardada.
        Maria,Rosa
        Obtención de Permiso de almacén.
        Rosa, Juan
        Refrendos.
        Rosa, Maria


Ya le he estado picando pero al momento de querer agregar los nombres de los responsables de cada tema no me sale...ya me quedó casi como queria....

aquí esta el código...

Código PHP:


$query = "select iddependencia,nombre from dependencias where activo = '1'";


        ?>
    

<table width="700" >
    <tbody>

<tr>
    <br/>
    <th>Dependencia </th>
        <td><input style=" width:183px" name="nombre" id="nombre"  vinicial=""  type="text">
             <input type="button" value="Buscar" style="cursor: pointer;"></td>
             
             </tr>
</tbody>
</table>

<?php

$op
->executa_query_rs($query);

while (
$rowd mysql_fetch_assoc($op->get_rs())) {

    echo 
"<ul>";
    
            echo 
"<li>" $rowd['nombre'];
            echo 
"<ul>";

            
$query "select id_area,nombre_area from areas where activo = '1' and iddependencia = ".$rowd['iddependencia'];

            
$op2->executa_query_rs($query);

             while( 
$rowa mysql_fetch_assoc($op2->get_rs())){
                 echo 
"<li>" $rowa['nombre_area'];

                 
$query "select idtemas, tema from temas where activo = '1' and id_area = ".$rowa['id_area'];
                 
                 
$op1->executa_query_rs($query);


                 while (
$rowt mysql_fetch_assoc($op1->get_rs())) {
                 
                        echo 
"<ul>";
                          echo 
"<li style='color:#27a1b4'>"$rowt['tema'];

                      

                          echo 
"</li>";
                      echo 
"</ul>";
                 }
 
                echo 
"</li>";
            }
            
$op2->free_rs();
            
             echo 
"</ul>";
             echo 
"</li>";
        
    echo 
"</ul>";
}


$op->free_rs();
Ya solo queda ponerle los nombres como sigue... alguien que me pueda decir como?
  • Sector Principal
    • Dependencia
      • Obtención de Permisos.
        Juan, Maria,Rosa
        Opinión favorable para la Compra.
        Juan, Maria
        Traslado de mercancía.
        Rosa
        Obtención de mercancía.
        Maria
        Obtención de mercancía guardada.
        Maria,Rosa
        Obtención de Permiso de almacén.
        Rosa, Juan
        Refrendos.
        Rosa, Maria

Muchas gracias por su ayuda...!!!

Última edición por gunsofledz; 14/04/2014 a las 16:18

Etiquetas: enlazadas, html, php, select, tabla, tablas
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 04:19.