[Resuelto] CONSULTA SELECT PHP

Iniciado por mgarcia.informatico, 29 Diciembre 2014, 14:23 PM

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

mgarcia.informatico

ESTIMADOS TENGO UNA DUDA...
tengo 3 tablas:
- tbl_activos:  
         id_codigo        nombre         id_valorizacion

- tbl_valorizacion :
        id_valorizacion        nombre_valorizacion

- tbl_valorizacion_mes :
        id_valorizacion        mes_va       fecha_va         valor_va

Como pueden ver la tres tablas estan relacionadas por el ID (id_valorizacion)
valores:  
tbl_activos                    tbl_valorizacion                       tbl_valorizacion_mes
1    celular      1            1      tributario                     1     10     2014    500
                                                                             1     11     2014    450
                                                                             1     12     2014    400

entonces quiero en otro archivo php, imprimA los valores a mostrar en una tabla.
Por lo tanto tengo una tabla con registro de activos creados, cada fila tiene un boton"Ver detalle". cuando haga clic en el boton ver Detalle de la fila 1,debe llamar al id (1) de la tabla tbl_activo y como esta relacionado debe mostrar:    
                                                                         
  nom. valorizacion :    tributario
  valorizacion mes:  ene  feb  mar abr  may  jun  jul   ago   sep    oct     nov     dic
                                                                                                500    450    400

Necesito su ayuda por favor!!!

SALUDOS

MinusFour

Esto parece mas una duda de SQL. Para hacer una relacion, tienes que usar un JOIN.

Código (MySQL) [Seleccionar]

SELECT tbl_valorizacion.id_valorizacion,
tbl_valorizacion.nombre_valorizacion,
tbl_activos.nombre,
tbl_activos.id_codigo,
tbl_valorizacion_mes.mes_va,
tbl_valorizacion_mes.fecha_va,
tbl_valorizacion_mes.valor_va
FROM tbl_valorizacion
INNER JOIN tbl_activos
ON tbl_activos.id_valorizacion = tbl_valorizacion.id_valorizacion
INNER JOIN tbl_valorizacion_mes
ON tbl_valorizacion_mes = tbl_valorizacion_id_valorizacion


mgarcia.informatico

#2
Estimado estoy tratando de hacer el codigo.. y como imprimiria yo lo tengo de la siguiente forma...

       
Código (php) [Seleccionar]
$result = LA CONSULTA QUE ME ENVIASTES..

while($rs=mysql_fetch_array($result)) {
?>
<tr>
    <td width="160px">Nom Valorizacion</td>
    <td colspan="13"><?php echo $rs['nombre_valorizacion'];?></td>
</tr>
<tr>
      <td>Valorizacion mes</td>
      <td>Ene<br><?php echo $rs['valor_va'];?></td>
<td>Feb<br><?php echo $rs['valor_va'];?></td>
<td>Mar<br><?php echo $rs['valor_va'];?></td>
<td>Abr<br><?php echo $rs['valor_va'];?></td>
<td>May<br><?php echo $rs['valor_va'];?></td>
<td>Jun<br><?php echo $rs['valor_va'];?></td>
<td>Jul<br><?php echo $rs['valor_va'];?></td>
<td>Ago<br><?php echo $rs['valor_va'];?></td>
<td>Sep<br><?php echo $rs['valor_va'];?></td>
<td>Oct<br><?php echo $rs['valor_va'];?></td>
<td>Nov<br><?php echo $rs['valor_va'];?></td>
<td>Dici<br><?php echo $rs['valor_va'];?></td>
</tr>


Pero el problema es que no me imprimie como quiero... se me repite varias veces las tablas....
El resultado esperado quiero que sea esto:

nom. valorizacion :    tributario
  valorizacion mes:  ene  feb  mar abr  may  jun  jul   ago   sep    oct     nov     dic
                                                                                                500    450    400
Mod: Obligatorio el uso de etiquetas GeSHi.

Saludos

MinusFour

#3
Si te das cuenta, estas imprimiendo la misma variable una y otra vez. Así que es normal que los datos esten repetidos.

mysql_fetch_array regresa una hilera del resultados. Una hilera de la consulta deberia parecerse a esto:

Código (text) [Seleccionar]
1 - tributario - 1 - celular - 10  - 2014 - 500

Como puedes ver, en la hilera no aparecen las entradas de todos tus meses. Las tienes dispersas en diferentes hileras. Lo que necesitas hacer es recorrer toda las hileras, guardar los resultados por año y luego imprimirlos en una tabla HTML. Creo que esa sería la manera más facil. No estoy seguro si sea la más eficiente.

mgarcia.informatico

Hola MinusFour,

Gracias por tu atencion... claro la idea que propones seria la correcta..
identificar el mes y el valor correspondiente al mes...y el año seria ideal, pintarlo en un check list.. entonces.. quedaria de esta forma... mas bien de esta forma.. me gustaria.. que se imprimiera...

                                                                              Año  <select>2014<select>




nom. valorizacionTributario
ene<br>feb<br>mar<br>abr<br>may<br>jun<br>jul<br>ago<br>sep<br>oct<br>500nov<br>450dic<br>400

En donde dice año.. seria obtener el año del registro que muestra en la tabla tbl_valorizacion_mes.... y en las tablas los valores correspondientes.

Estoy tratando de hacerlo.. y no entiendo como.. me puedes ayudar ... Porfavor.

Saludos

MinusFour

#5
Cita de: mgarcia.informatico en 29 Diciembre 2014, 19:02 PM
Hola MinusFour,

Gracias por tu atencion... claro la idea que propones seria la correcta..
identificar el mes y el valor correspondiente al mes...y el año seria ideal, pintarlo en un check list.. entonces.. quedaria de esta forma... mas bien de esta forma.. me gustaria.. que se imprimiera...

                                                                             Año  <select>2014<select>




nom. valorizacionTributario
ene<br>feb<br>mar<br>abr<br>may<br>jun<br>jul<br>ago<br>sep<br>oct<br>500nov<br>450dic<br>400

En donde dice año.. seria obtener el año del registro que muestra en la tabla tbl_valorizacion_mes.... y en las tablas los valores correspondientes.

Estoy tratando de hacerlo.. y no entiendo como.. me puedes ayudar ... Porfavor.

Saludos

Guarda los datos en un arreglo bidimensional:

Código (php) [Seleccionar]

$info[$year][$month] = $data;


Despues simplemente la recorres:
Código (php) [Seleccionar]

//Imprime los headers

echo "<table>
   <thead>
     <tr>
      <th>Enero</th>
      <th>Febrero</th>
      ...
     </tr>
    </thead>";

//Empieza el cuerpo de la tabla:
echo "<tbody>";
foreach($info as $year){
 //Nueva hilera por año
 echo "<tr>";
 for($i = 1; $i <= 12; $i++){
   echo "<td>";
   if(isset($year[$i])){
     //Si existe un registro para el mes, imprime.
     echo $year[$i];
   }
   echo "</td>";
 }
 //Cierre de hilera
 echo "</tr>";
}
//Cierra cuerpo de tabla y tabla:
echo "</tbody></table";


Es un ejemplo, vas a tener que adaptarlo.

PD: El codigo va entre etiquetas ([ code=php ] [ / code ], sin espacios)

mgarcia.informatico

#6
Hola Estimado gracias por tu tiempo y ayuda.. aun sigo colgado y no se como hacerlo...
tengo 3 tablas:
- tbl_activos:  
         id_codigo        nombre         id_valorizacion

- tbl_valorizacion :
        id_valorizacion        nombre_valorizacion

- tbl_valorizacion_mes :
        id_valorizacion        mes_va       fecha_va         valor_va

Como pueden ver la tres tablas estan relacionadas por el ID (id_valorizacion)
valores:  
tbl_activos                    tbl_valorizacion                       tbl_valorizacion_mes
1    celular      1            1      tributario                     1     10     2014    500
                                                                             1     11     2014    450
                                                                             1     12     2014    400
adjunto procedimiento.

<table >

Código (php) [Seleccionar]


include('bd/conexion.php');

$id = $_REQUEST['id'];
$sql1 = "SELECT  af.id_activo,
                         v.id_valorizacion_activo,
                         v.nombe_valorizacion,
                         va.valor_va
    from      tbl_activo_fijo as af

   left join tbl_valorizacion_activo as v on af.id_valorizacion_activo = v.id_valorizacion_activo  
   left join tbl_valorizacion_mes as va on v.id_valorizacion_activo=va.id_valorizacion_activo

   WHERE af.id_activo = ".$id;
   

$result = mysql_query($sql1);
while($rs=mysql_fetch_array($result)) {

            
Código (html4strict) [Seleccionar]

<tr>
<td width="160px">Nombre Valorizacion</td>
<td colspan="13"><?php echo $rs['nombre_valorizacion'];?></td>
</tr>
<tr>
<td>Valorizacion mes</td>
<td>Ene<br><?php echo $rs['valor_va'];?></td>
<td>Feb<br><?php echo $rs['valor_va'];?></td>
<td>Mar<br><?php echo $rs['valor_va'];?></td>
<td>Abr<br><?php echo $rs['valor_va'];?></td>
<td>May<br><?php echo $rs['valor_va'];?></td>
<td>Jun<br><?php echo $rs['valor_va'];?></td>
<td>Jul<br><?php echo $rs['valor_va'];?></td>
<td>Ago<br><?php echo $rs['valor_va'];?></td>
<td>Sep<br><?php echo $rs['valor_va'];?></td>
<td>Oct<br><?php echo $rs['valor_va'];?></td>
<td>Nov<br><?php echo $rs['valor_va'];?></td>
<td>Dic<br><?php echo $rs['valor_va'];?></td>
 </tr>



Espero... que estea mas claro.. para que me puedas ayudar... PORFAVOR... de antemano muchas gracias...
PD: El codigo que me enviastes tiene sentido... pero en que parte se coloca para que funcione correctamente..

Saludos Cordiales




Hola MinusFour...

Gracias por tu atencion, ya encontre la solucion y como hacerlo...
Muchas gracias.

Saludos

Mod: No hacer doble post.