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
Esto parece mas una duda de SQL. Para hacer una relacion, tienes que usar un JOIN.
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
Estimado estoy tratando de hacer el codigo.. y como imprimiria yo lo tengo de la siguiente forma...
$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
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:
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.
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. valorizacion | Tributario |
ene<br> | feb<br> | mar<br> | abr<br> | may<br> | jun<br> | jul<br> | ago<br> | sep<br> | oct<br>500 | nov<br>450 | dic<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
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. valorizacion | Tributario |
ene<br> | feb<br> | mar<br> | abr<br> | may<br> | jun<br> | jul<br> | ago<br> | sep<br> | oct<br>500 | nov<br>450 | dic<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:
$info[$year][$month] = $data;
Despues simplemente la recorres:
//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)
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 >
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)) {
<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.