TEMA : sumar datos de una consulta - Foro de Tu Informática Fácil

TEMA : sumar datos de una consulta

sumar datos de una consulta 01 Jun 2011, 07:05 #7

  • luis
  • Avatar de luis
  • DESCONECTADO
  • Karma:

Hola. Como hago para sumar datos contenidos en una variable que tiene el mismo nombre cada vez que se ingresa un nuevo valor.

 

<?php
<script type="text/javascript">
function Sumar(){
interval = setInterval("calcular()",1);
}
uno = document.produccion.huevosA.value;
document.produccion.total_primera.value= (uno * 1)+(dos * 1)+(tres * 1)+ (cuatro * 1)
}
function NoSumar(){ clearInterval(interval); } </script>
$lote=$_POST["lote"];
$conectar= mysql_connect("localhost","root","sena");
mysql_select_db("tecnoavicola19",$conectar);
$resultado = mysql_query("SELECT lote,fch_produccion,recogida,total_primera,desechados FROM produccion WHERE (lote='$lote')",$conectar) or die (mysql_error()) ;
echo "
<table width='100%' bgcolor='#5F9EA0' border='1'>
<tr>
<td align='center'>FECHA</td>
<td align='center'>RECOGIDA</td>
<td align='center'>LOTE</td>
<td align='center'>HUEVOS PRIMERA</td>
<td align='center'>DESECHADOS</td>
</tr>";
while($fila = mysql_fetch_array($resultado))
//while ($row = mysql_fetch_row($resultado)) {
echo"
<tr>
<td>$fila[fch_produccion]</td>
<td>$fila[recogida]</td>
<td>$fila[lote]</td>
<td>$fila[total_primera]</td>
<td>$fila[desechados]</td>
</tr>";
}
echo"</table>";
mysql_close($conectar);

 

las variables que traen datos numerico son $fila[total_primera] y $fila[desechados]. las veces que contengan datos depende de la variable recogida. La cual puede tomar los valores: mañana, medio dia y tarde.

 

Agradesco su colaboracion.

Si me regalan una respuesta la espero por medio de este sitio.

Re: sumar datos de una consulta 01 Jun 2011, 15:35 #8

  • luigy69
  • Avatar de luigy69
  • DESCONECTADO
  • Karma:

Hola Luis, voy hacer un análisis de tu consulta para plantear el problema y la solución de lo que he entendido.

 

Análisis.

 

Tu query devolverá un número de rows para un lote dado, que pueden ser una o n rows.

 

Con en bucle while recorres el recordset devuelto por la query y muestras una tabla con el detalle del las rows.

 

Lo que quieres hacer es sumar/acumular los valores de las columnas $fila[total_primera] y $fila[desechados] en base al valor de la columna recogida y después de haber terminado el bucle mostrar los valores sumados/acumulados.

 

Solución.

 

La solución esta en usar variables que nos vayan acumulando la suma de los valores números de las columnas.

 

Primero declaramos las variables y las inicializamos a 0 justo antes del bucle while.

 

$sum_Total_Primera = 0;

$sum_Desechados = 0;

 

Dentro del bucle while realizamos el acumulado de lo que valga

 

$sum_Total_Primera más el valor de $fila[total_primera] e igual para la columna $fila[desechados];

$sum_Total_Primera = $sum_Total_Primera + $fila[total_primera];

$sum_Desechados = $sum_Desechados + $fila[desechados];

 

En la primera iteración las variables valen 0, pero por cada iteración del bucle el valor de las variables será igual al valor que ya tenían más el valor que contenga la columna para esa iteración.

 

Si quieres un acumulado en base al valor de la columna recogida tienes que crear 2 variables por cada valor de recogida antes del while.

 

$sum_TP_manana = 0;

$sum_Des_manana = 0;

$sum_TP_Mdia = 0;

$sum_Des_Mdia = 0;

$sum_TP_Tarde = 0;

$sum_Des_Tarde = 0;

 

Ahora en el while usando If anidados o mucho mejor usa la instrucción switch de esta manera.

while($fila = mysql_fetch_array($resultado))

//while ($row = mysql_fetch_row($resultado)) {

echo"

 

<tr>

<td>$fila[fch_produccion]</td>

<td>$fila[recogida]</td>

<td>$fila[lote]</td>

<td>$fila[total_primera]</td>

<td>$fila[desechados]</td>

</tr>";

 

switch ($fila[recogida]) {

case 'mañana':

$sum_TP_manana = sum_TP_manana + $fila[total_primera];

$sum_Des_manana = sum_Des_manana + $fila[desechados];

break;

case 'medio dia':

$sum_TP_Mdia = $sum_TP_Mdia + $fila[total_primera];

$sum_Des_Mdia = $sum_Des_Mdia + $fila[desechados];

break;

case 'tarde':

$sum_TP_Tarde = $sum_TP_Tarde + $fila[total_primera];

$sum_Des_Tarde = $sum_Des_Tarde + $fila[desechados];

break;

default:

}

}

 

Recomendación: Los valores de recogida no deberían tener ni ñ si espacios en blanco ya que te puede generar muchos problemas.

 

Por último solo tienes que visualizar las variables después del fin del bucle while,

 

echo $sum_TP_manana;

echo $sum_Des_manana;

 

de la misma manera el resto de variables.

 

Bueno espero hacer acertado con el análisis y con la solución.

 

Salu2.

Re: sumar datos de una consulta 02 Jun 2011, 13:36 #9

  • luis
  • Avatar de luis
  • DESCONECTADO
  • Karma:

Hola, gracias por responder a mi consulta.

He aplicado a mi codigo la instruccion que me dieron, pero no pasa nada, ni siquiera aparece un mensaje de error.

Les adjunto el codigo con su aporte.

Por favor me indican que le falta o que esta mal.

 

<?php
$lote=$_POST["lote"];
$conectar= mysql_connect("localhost","root","sena");
mysql_select_db("tecnoavicola19",$conectar);
$resultado = mysql_query("SELECT lote,fch_produccion,recogida,total_primera,desechados FROM produccion WHERE (lote='$lote')",$conectar) or die (mysql_error()) ;
echo "
<table width='100%' bgcolor='#5F9EA0' border='1'>
<tr>
<td align='center'>FECHA</td>
<td align='center'>RECOGIDA</td>
<td align='center'>LOTE</td>
<td align='center'>HUEVOS PRIMERA</td>
<td align='center'>DESECHADOS</td>
</tr>";
$sum_Total_Primera = 0;
$sum_Desechados = 0;
$sum_TP_manana = 0;
$sum_Des_manana = 0;
$sum_TP_Mdia = 0;
$sum_Des_Mdia = 0;
$sum_TP_Tarde = 0;
$sum_Des_Tarde = 0;

while($fila = mysql_fetch_array($resultado))
//while ($row = mysql_fetch_row($resultado))
{
$sum_Total_Primera = $sum_Total_Primera + $fila[total_primera];
$sum_Desechados = $sum_Desechados + $fila[desechados];
echo"
<tr>
<td>$fila[fch_produccion]</td>
<td>$fila[recogida]</td>
<td>$fila[lote]</td>
<td>$fila[total_primera]</td>
<td>$fila[desechados]</td>
</tr>";
switch ($fila[recogida])
{
case 'mañana':
$sum_TP_mañana = sum_TP_mañana + $fila[total_primera];
$sum_Des_mañana = sum_Des_mañana + $fila[desechados];
break;
case 'medio dia':
$sum_TP_Mdia = $sum_TP_Mdia + $fila[total_primera];
$sum_Des_Mdia = $sum_Des_Mdia + $fila[desechados];
break;
case 'tarde':
$sum_TP_Tarde = $sum_TP_Tarde + $fila[total_primera];
$sum_Des_Tarde = $sum_Des_Tarde + $fila[desechados];
break;
default:
} }
echo"</table>";
echo $sum_TP_mañana;
echo $sum_Des_mañana;
mysql_close($conectar);

 

Re: sumar datos de una consulta 02 Jun 2011, 18:13 #10

  • luigy69
  • Avatar de luigy69
  • DESCONECTADO
  • Karma:

Hola, he revisado y hay un pequeño error en el código, se me ha pasado incluir el $ delante del nombre de algunas variables.

 

Hay otro fallo, cuando has escrito el código has utilizado la ñ en sum_TP_manana y sum_Des_manana, como te comentaba en anterior post no debes utilizar caracteres especiales en el nombre de palabras reservadas del lenguaje de programación en esta cado de PHP, ni en nombres de variables, podríamos decir que la ñ entraría dentro de los caracteres especiales en el mundo de la programación.

 

Casualidad que has utilizado la única parte que estaba mal.

 

Corrige esta parte del código:

 

Antes

 

$sum_TP_mañana = sum_TP_mañana + $fila[total_primera];

$sum_Des_mañana = sum_Des_mañana + $fila[desechados];

 

Corregido

 

$sum_TP_manana = $sum_TP_manana + $fila[total_primera];

$sum_Des_manana = $sum_Des_manana + $fila[desechados];

 

También

Antes

 

echo $sum_TP_mañana;

echo $sum_Des_mañana;

 

Corregido

 

echo $sum_TP_manana;

echo $sum_Des_manana;

 

Con estos arreglos debería funcionarte, pero tendrías que arreglar cosas de tu tabla para que te funcione correctamente.

 

He replicado tu tabla en mi server para que poder analizar el funcionamiento y en la imagen puedes ver el resultado.

 

Tabla resultado

 

Para que puedas tener esta salida incluye lo siguiente en tu código.

 

Justo después de la declaración de las variables y antes del while incluye esto:

//Contador lineas (registros)

$numreg = 0;

 

Justo después del final de la instrucción switch y antes de la llave del final de while incluye esto,

 

//incrementamos en uno por cada iteración del bucle while

++$numreg;

 

Y sustituye esto

 

echo $sum_TP_manana;

echo $sum_Des_manana;

 

por esto echo

 


echo "</br>"."</br>";
echo 'Numero total de registros procesados -> '.$numreg;
echo "</br>"."</br>";
echo 'Total Primera mañana -> '.$sum_TP_manana;
echo "</br>";
echo 'Total Desechados mañana - > '.$sum_Des_manana;
echo "</br>"."</br>";
echo 'Total Primera Medio Dia -> '.$sum_TP_Mdia;
echo "</br>";
echo 'Total Desechados Medio Dia - > '.$sum_Des_Mdia;
echo "</br>"."</br>";
echo 'Total Primera Tarde -> '.$sum_TP_Tarde;
echo "</br>";
echo 'Total Desechados tarde - > '.$sum_Des_Tarde;

 

He incluido un contador para que puedas calcular las líneas que procesas el while, ya que una de las cosas que te puede pasar es que tu consulta no devuelva filas, la variable $numreg te va ha dar el número de files que el while ha procesado.

 

Como puedes observar en los datos que aparecen en la columna RECOGIDA hay diferentes formas en las que puedes tener insertado mañana o medio dia, ID 2 y 3, ID 3 y 4, si realizas los cálculos veras que las sumas no coinciden con lo que aparece en los totales, el funcionamiento es correcto pero el resultado no lo es, tienes que tener en cuenta que cuando la instrucción case hace lo siguiente,

ID 2 – El valor de RECOGIDA es ‘mañana’

switch ($fila[recogida])

{

case 'mañana':

 

El resultado es false y no entrara ha sumar ya que mañana no es exactamente igual a mañana, aquí además se ha producido un trucado de la letra ñ al ser visualizada en el navegardor.

 

ID 3 – El valor de RECOGIDA es ‘mediodia’

 

switch ($fila[recogida])

{

.

.

case 'medio dia':

 

El resultado será false, igual que el anterior caso mediodia no es igual que 'medio dia’

 

Para solucionar esto solo tienes un camino, cambiar y normalizar tu modelo de datos.

 

Salu2

Re: sumar datos de una consulta 05 Jun 2011, 22:42 #11

  • luis
  • Avatar de luis
  • DESCONECTADO
  • Karma:

Hola.

Gracias por la colaboracion prestada hasta ahora.

He aplicado los codigos que me han facilitado, y toda funciona como ustedes desean.

Este es el codigo con sus indicaciones.

 

<?php
$lote=$_POST["lote"];

 

 

 


$conectar= mysql_connect("localhost","root","sena");
mysql_select_db("tecnoavicola19",$conectar);
$resultado = mysql_query("SELECT lote,fch_produccion,recogida,total_primera,desechados FROM produccion WHERE (lote='$lote')",$conectar) or die (mysql_error()) ;

 


echo "

 


<table width='100%' bgcolor='#5F9EA0' border='1'>
<tr>
<td align='center'>FECHA</td>
<td align='center'>RECOGIDA</td>
<td align='center'>LOTE</td>
<td align='center'>HUEVOS PRIMERA</td>
<td align='center'>DESECHADOS</td>
</tr>";

 

 

 

 

 


$sum_TP_Manana = $sum_TP_Manana + $fila[total_primera];
$sum_Des_Manana = $sum_Des_Manana + $fila[desechados];
$sum_TP_Mediodia = $sum_TP_Mediodia + $fila[total_primera];
$sum_Des_Mediodia = $sum_Des_Mediodia + $fila[desechados];
$sum_TP_Tarde = $sum_TP_Tarde + $fila[total_primera];
$sum_Des_Tarde = $sum_Des_Tarde + $fila[desechados];
$sum_Tp_Adicional = $sum_Tp_Adicional + $fila[total_primera];
$sum_Des_Adicional = $sum_Des_Adicional + $fila[desechados];
$sum_total_primera= $sum_TP_Manana + $sum_TP_Mediodia + $sum_TP_Tarde + $sum_Tp_Adicional;
$sum_total_desechados= $sum_Des_Manana + $sum_Des_Mediodia + $sum_Des_Tarde + $sum_Des_Adicional;
//Contador lineas (registros)
$numreg = 0;

 

 

 


while($fila = mysql_fetch_array($resultado))
//while ($row = mysql_fetch_row($resultado))
{
$sum_Total_Primera = $sum_Total_Primera + $fila[total_primera];
$sum_Desechados = $sum_Desechados + $fila[desechados];

 


echo"

 

 

 

 

 


<tr>
<td>$fila[fch_produccion]</td>
<td>$fila[recogida]</td>
<td>$fila[lote]</td>
<td>$fila[total_primera]</td>
<td>$fila[desechados]</td>
</tr>";

 

 

switch ($fila[recogida])
{

 

 

 


case 'Manana':
$sum_TP_Manana = $sum_TP_Manana + $fila[total_primera];
$sum_Des_Manana = $sum_Des_Manana + $fila[desechados];
break;
case 'Mediodia':
$sum_TP_Mediodia = $sum_TP_Mediodia + $fila[total_primera];
$sum_Des_Mediodia = $sum_Des_Mediodia + $fila[desechados];
break;
case 'Tarde':
$sum_TP_Tarde = $sum_TP_Tarde + $fila[total_primera];
$sum_Des_Tarde = $sum_Des_Tarde + $fila[desechados];
break;
case 'Adicional':
$sum_TP_Adicional = $sum_TP_Adicional + $fila[total_primera];
$sum_Des_Adicional = $sum_Des_Adicional + $fila[desechados];
break;
default:

 


}
//incrementamos en uno por cada iteración del bucle while
++$numreg;

 


}

 

 

 


echo"</table>";
echo "</br>"."</br>";
echo 'Numero total de registros procesados -> '.$numreg;
echo "</br>"."</br>";
echo 'Total Primera Manana -> '.$sum_TP_Manana;
echo "</br>";
echo 'Total Desechados Manana - > '.$sum_Des_Manana;
echo "</br>"."</br>";
echo 'Total Primera Mediodia -> '.$sum_TP_Mediodia;
echo "</br>";
echo 'Total Desechados Mediodia - > '.$sum_Des_Mediodia;
echo "</br>"."</br>";
echo 'Total Primera Tarde -> '.$sum_TP_Tarde;
echo "</br>";
echo 'Total Desechados Tarde - > '.$sum_Des_Tarde;
echo "</br>"."</br>";
echo 'Total Primera Adicional -> '.$sum_TP_Adicional;
echo "</br>";
echo 'Total Desechados Adicional - > '.$sum_Des_Adicional;

 


mysql_close($conectar);

 

 

La imagen que genera es tal como ustedes la describieron.

Pero tengo otra inquietud:

Desde un principio mi objetivo fue sumar los valores que aparecen en la columna 'HUEVOS PRIMERA' y 'DESECHADOS', que en el codigo aparecen como:

$sum_TP_Manana + $sum_TP_Mediodia + $sum_TP_Tarde + $sum_Tp_Adicional

$sum_Des_Manana + $sum_Des_Mediodia + $sum_Des_Tarde + $sum_Des_Adicional

 

No deseo que aparecan valores por fuera de la tabla de consulta, si no que esta suma final se ubique al final de la tabla y en la columnas 'HUEVOS PRIMERA' y 'DESECHADOS'.

 

He tratado pero se me descuadra la tabla.

Les agradesco la colaboracion hasta ahora prestada.:)

Re: sumar datos de una consulta 09 Jun 2011, 18:30 #12

  • luigy69
  • Avatar de luigy69
  • DESCONECTADO
  • Karma:

Hola, disculpa por el retraso el respuesta pero he estado bastante liado.

 

Incluye el siguiente código entre el fin del while y antes de mostrar la tabla.

 

Saludos.

 


} //fin del while


$Total_TP=$sum_TP_Manana + $sum_TP_Mediodia + $sum_TP_Tarde + $sum_Tp_Adicional;
$Total_DES=$sum_Des_Manana + $sum_Des_Mediodia + $sum_Des_Tarde + $sum_Des_Adicional;


echo"


<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>Total HUEVOS PRIMERA : $Total_TP</td>
<td>Total DESECHADOS : $Total_DES</td>


</tr>";


echo "</table>";

Re: sumar datos de una consulta 10 Jun 2011, 06:10 #13

  • luis
  • Avatar de luis
  • DESCONECTADO
  • Karma:

Hola.

Muchas gracias por la colaboracion que hasta ahora me han prestado. Agregué las ultimas lineas de codigo que me enviaron, y resulto como se esperaba. En la consulta se realiza la sumatoria de los huevos de primera y los desechados.

Esto está muy bien hasta ahora, pero quisiera explicarles el rollo completo: mediante un formulario llamado formulario_produccion.php, ingreso los datos referentes a la produccion de un galpon de gallinas. Con este introduzco la fecha, numero del lote, tipo de recogida de la produccion y el respectivo numero de huevos de primera y los desechados. Estos datos se almacenan en una base de datos que es de donde se toman los datos.

Este formulario produccion tiene un boton llamado consulta, ubicado en la linea 238, este llama a otro llamado reporte_diario.php. éste contiene tres campos: uno para introducir el numero de lote, y dos para escoger las fechas. Esto se hace por medio de dos calendarios, los cuales generan la fecha mediante el formato Año-Mes-Dia. Hay otra boton llamado buscar, mediante este se lanza la consulta a la base de datos con estos tres parametros; lote , fecha de produccion inicial y fecha de produccion final. El archivo encargado de realizar la coneccion con la base de datos y realizar la consulta es produccion_dia.php. este es llamado por reporte_diario.php. En el formulario produccion.php hay un IFRAME, que es donde se enmarca la consulta con el numero del lote y las fechas inicial y final.

El problema radica en el archivo produccion_dia.php. Aquí se declaran al inicio, las variables lote y fecha, y en el SELECT se determinan tambien. Cuando introdusco los datos de numero de lote y las respectivas fechas, me aparece un mensaje como este: Parse error: syntax error, unexpected T_VARIABLE in C:\AppServ\www\tecnoavicola_AppServer\modelos\produccion_dia.php on line 6

En resumen el objetivo final es poder hacer una consulta a la base datos, mediante los parametros numero de lote y fecha incial y final. Esto me da una produccion con un espacio de tiempo, la cual debe esta sumada en la consulta y discriminada en produccion de primera y produccion desechods Adjunto todos los archivos antes mensionados. Espero no abuzar de su disposicion al hacer una consulta un tanto complicada, pero es que son los unicos que me han colaborado hasta ahora, y espero me sigan prestando su ayuda:

 

formulario_produccion.php

 

<html>
<head><title>FORMULARIO DE PRODUCCION</title>
<script language="javascript1.3">
function restar1(ingres,muert,descar,vivientes)
{
result=ingres-muert;
resultado=result-descar;
vivientes.value=resultado;
}
</script>


<script language="javascript1.3">
function ResetForm()
{ document.produccion.reset();}


function validar()
{
var std = true;
if (document.produccion.fch_produccion.value==0)
{
window.alert('POR FAVOR LLENAR EL CAMPO FECHA');
return false;
}
if (document.produccion.uno.value=="")
{
window.alert('POR FAVOR LLENAR CAMPO RECOGIDA');
return false;
}


if (document.produccion.lote.value=="")
{
//window.alert('por favor llenar los espacios');
window.alert('INGRESAR NUMERO DE LOTE');
std = false;
}


if (document.produccion.semanas.value=="")
{
window.alert('POR FAVOR INGRESE SEMANA DE PRODUCCION');
return false;
}


if (document.produccion.ingresadas.value=="")
{
window.alert('POR FAVOR INGRESE EL NUMERO DE AVES INGRESADAS ');
return false;
}
if (document.produccion.muertas.value=="")
{
window.alert('POR FAVOR INGRESE LA CANTIDAD DE GALLINAS MUERTAS');
return false;
}


if (document.produccion.descartadas.value=="")
{
window.alert('POR FAVOR INGRESE EL NUMERO DE AVES DESCARTADAS ');
return false;
}
if (std == false)
{
return false;
}
else
{
produccion.submit();
return true;
}

 

 


}
</script>

 


<script language="javascript" type="text/javascript">


//*** Este Codigo permite Validar que sea un campo Numerico
function Solo_Numerico(variable){
Numer=parseInt(variable);
if (isNaN(Numer)){
return "";
}
return Numer;
}
function ValNumero(Control){
Control.value=Solo_Numerico(Control.value);
}
//*** Fin del Codigo para Validar que sea un campo Numerico


</script>


<link rel="stylesheet" href="/../herramientas/calendario/system.css"/>
<script type="text/javascript" src="/../herramientas/calendario/zapatec.js"></script>
<script type="text/javascript" src="/../herramientas/calendario/calendar.js"></script>
<script type="text/javascript" src="/../herramientas/calendario/calendar-es.js"></script>


<link rel="Stylesheet" href="/estilos/formscss.css">
</head>


<script type="text/javascript">
function Sumar(){
interval = setInterval("calcular()",1);
}
function calcular(){
uno = document.produccion.huevosA.value;
dos = document.produccion.huevosAA.value;
tres=document.produccion.huevosAAA.value;
cuatro=document.produccion.huevos_super.value;
cinco=document.produccion.total_primera.value;
seis=document.produccion.pipiolos.value;
siete=document.produccion.rotos.value;
ocho=document.produccion.sin_cascara.value;
nueve=document.produccion.deformes.value;
dies=document.produccion.desechados.value;
document.produccion.huevosA.value = (uno * 1) ;
document.produccion.huevosAA.value = (dos * 1) ;
document.produccion.huevosAAA.value = (tres * 1) ;
document.produccion.huevos_super.value = (cuatro * 1) ;
document.produccion.pipiolos.value = (seis * 1) ;
document.produccion.rotos.value = (siete * 1) ;
document.produccion.sin_cascara.value = (ocho * 1) ;
nueve=document.produccion.deformes.value = (nueve * 1) ;
document.produccion.desechados.value = (dies * 1) ;
document.produccion.total_primera.value= (uno * 1)+(dos * 1)+(tres * 1)+ (cuatro * 1)
document.produccion.desechados.value= (seis * 1)+(siete * 1)+(ocho * 1)+ (nueve * 1)


}
function NoSumar(){
clearInterval(interval);
}

 


</script>
<body>


<form name="produccion" method="POST" action="form_produccion.php" onsubmit="return validar(this)">
<table class="cuerpo8" cellspacing="1" cellpadding="1" >


<tr>
<div class="titulo2">
<td><a href="/formulario_lista_de_chequeo.php" >LISTA DE CHEQUEO</a></td>
<td><a href="/formulario_lote.php" >INGRESO NUEVO LOTE</a></td>
<td><a href="/formulario_costos1.php" >COSTOS</a></td>
<td><a href="/formulario_tratamiento.php" >TRATAMIENTO</a></td>
<td><a href="/formulario_produccion.php" >PRODUCCION</a></td>
<td><a href="/formulario_ventas.php" >VENTAS</a></td></div>
<td><a href="/formulario_galpon.php" >GALPON</a></td></div>
<td><a href="/reporte.html" >REPORTE</a></td></div>
</tr>
<table width="180"height="200" align="center" cellspacing="0" cellpadding="0">
<td align="right" width="9%" height="100" valign="top"><img src="/../imagenes/SENA_gif.gif" width="170" height="180" alt="gif" >
</td>
<td align="left" valign="top"><img src="/../imagenes/logo4.png" width="810" height="200" alt="gif"></td>


</table><BR>
<table border="1" width="100%" height="10%" border="1" bgcolor="#5F9EA0">
<tr>
<td class="titulo4" class="cuerpo12" align="center" colspan="8"><MARQUEE><h2>FORMULARIO PRODUCCION </h2></MARQUEE></td>

 


</tr>


<tr>
<td width="13%" height='2%' bgcolor="#DCDCDC" align="center"><span class="estil_01">Fecha</span></td>
<td width="11%" height='2%' bgcolor="#DCDCDC" align="center"><span class="estil_01">Recogida</span></td>
<td width="11%" height='2%' bgcolor="#DCDCDC" align="center"><span class="estil_01">Lote</span></td>
<td width="11%" height='2%' bgcolor="#DCDCDC" align="center"><span class="estil_01">Semana</span></td>
<td width="11%" height='1%' bgcolor="#DCDCDC" align="center"><span class="estil_01">Aves ingresadas</span></td>
<td width="11%" height='1%' bgcolor="#DCDCDC" align="center"><span class="estil_01">Aves muertas</span></td>
<td width="11%" height='1%' bgcolor="#DCDCDC" align="center"><span class="estil_01">Aves descartadas</span></td>
<td width="11%" height='1%' bgcolor="#DCDCDC" align="center"><span class="estil_01">Aves restantes</span></td>


</tr>
<tr>
<td valign="middle" align="center"><input id="fch_produccion" class="estil_caja" name="fch_produccion" class="campo_fcha" type="text"size="13%" title='Fecha produccion' readonly>
<img id='btn_fch_produccion' title="Calendario para Seleccionar la Fecha de produccion" src='../herramientas/calendario/calendario_1.gif' border='0' style="cursor:pointer" ></td>
<td align="center" class="titulo1"><select name="recogida" class="campo" id="recogida" style="width:120px" title='Seleccione Recogida' >
<option class="uno">Seleccione</option>
<option class="uno" >Manana</option>
<option class="uno" >Mediodia</option>
<option class="uno">Tarde</option>
<option class="uno" >Adicional</option>


</select>
<td align="center"><input class="estil_caja" name="lote" class="text" size='12' id="id_lote" title='Ingrese lote'></td >
<td align="center"><input class="estil_caja" name="semanas" class="campo" type='text' size='12' title='semanas' onkeyUp="return ValNumero(this);"></td>
<td align="center"><input class="estil_caja" name="ingresadas" id="ingres" class="campo" type='text'size='12' title='Aves del Lote' onkeyUp="return ValNumero(this);"></td>
<td align="center"><input class="estil_caja" name="muertas" id= "muert" class="campo" type='text'size='12' title='aves muertas' onkeyUp="return ValNumero(this);"></td>
<td align="center"><input class="estil_caja" name="descartadas" id="descar" onChange="restar1(ingres.value,muert.value,descar.value,vivientes);"class="campo" type='text' size='12' title='aves desacartadas'></td>
<td align="center"><input class="estil_caja" name="vivas" id="vivientes"class="campo" type='text'size='12' title='Aves existentes'></td>


</tr>
</table>


<table border="1" width="100%" height="5%" bgcolor="#5F9EA0">
<tr>
<td width="14%" height='1%' bgcolor="#DCDCDC" ><span class="estil_01">Huevos tipo A</span></td>
<td><input class="estil_caja" name="huevosA" class="campo" type='text' size='11' title='huevos A' onFocus="Sumar();" onBlur="NoSumar();" onkeyUp="return ValNumero(this);"> </td>
<td width="14%" height='1%' bgcolor="#DCDCDC" ><span class="estil_01">Huevos pipiolos</span></td>
<td><input class="estil_caja" name="pipiolos" class="campo" type='text' size='11' title='pipiolos' onFocus="Sumar();" onBlur="NoSumar();"onkeyUp="return ValNumero(this);"></td>
<td width="30%" name="observaciones" height='1%'bgcolor="#DCDCDC" align="center" ><span class="estil_01">Observaciones</span></td>
</tr>
<tr>
<td width="14%" height='1%' bgcolor="#DCDCDC"" ><span class="estil_01">Huevos tipo AA</span></td>
<td><input class="estil_caja" name="huevosAA" class="campo" type='text' size='11' title='huevos AA' onFocus="Sumar();" onBlur="NoSumar();" onkeyUp="return ValNumero(this);"> </td>
<td width="14%" height='1%' bgcolor="#DCDCDC"" ><span class="estil_01">Huevos rotos</span></td>
<td><input class="estil_caja" name="rotos" class="campo" type='text' size='11' title='rotos' onFocus="Sumar();" onBlur="NoSumar();" onkeyUp="return ValNumero(this);"></td>
<td rowspan="4"><textarea name="observaciones" rows="6" cols="32.8"></textarea></td>
</tr>
<tr>
<td width="14%" height='1%' bgcolor="#DCDCDC"" ><span class="estil_01">Huevos tipo AAA</span></td>
<td><input class="estil_caja" name="huevosAAA" class="campo" type='text' size='11' title='huevos AAA' onFocus="Sumar();" onBlur="NoSumar();" onkeyUp="return ValNumero(this);"> </td>
<td width="14%" height='1%' bgcolor="#DCDCDC"" ><span class="estil_01">Huevos sin cascara</span></td>
<td><input class="estil_caja" name="sin_cascara" class="campo" type='text' size='11' title='sin cascara' onFocus="Sumar();" onBlur="NoSumar();" onkeyUp="return ValNumero(this);"></td>
</tr>
<tr>
<td width="14%" height='1%' bgcolor="#DCDCDC"" ><span class="estil_01">Huevos super</span></td>
<td><input class="estil_caja" name="huevos_super" class="campo" type='text' size='11' title='huevos SUPER' onFocus="Sumar();" onBlur="NoSumar();" onkeyUp="return ValNumero(this);"> </td>
<td width="14%" height='1%' bgcolor="#DCDCDC"" ><span class="estil_01">Huevos deformes</span></td>
<td><input class="estil_caja" name="deformes" class="campo" type='text' size='11' title='deformes' onFocus="Sumar();" onBlur="NoSumar();" onkeyUp="return ValNumero(this);"></td>
</tr>
<tr>
<td width="14%" height='1%' bgcolor="#DCDCDC"" ><span class="estil_01">Total huevos de primera</span></td>
<td><input class="estil_caja" name="total_primera" class="campo" type='text' size='11' title='total huevos primera' onkeyUp="return ValNumero(this);"></td>
<td width="14%" height='1%' bgcolor="#DCDCDC"" ><span class="estil_01">Huevos desechados</span></td>
<td><input class="estil_caja" name="desechados" class="campo" type='text' size='11' title='desechados' onkeyUp="return ValNumero(this);"></td>
</tr>
</table>
<p align="center">
<input type='submit' name='boton' class='boton' value='Guardar'>


<input type="reset" name="boton" value="Cancelar" class="boton">
<input id="registro" name="salir" class='boton' type="button" value="Salir" style='cursor:pointer' onClick="location.href='base.html';">
<table border="1" width="100%" height="5%" bgcolor="#5F9EA0">
<tr>
<td valign="middle" align="center">
<input id="consulta" name="consulta" class='boton' type="button" value="Consultar" style='cursor:pointer'
onClick="Ifr_reporte.location.href='reporte_diario.php';">
</td>

 


</tr>
</table>


<table width="100%" height="5%" border="1" align="center" cellspacing="1" cellpadding="1" >
<tr align='center'>
<td valign='top' >
<center>
<iframe name='Ifr_reporte' width='99%' height='400' align='center' frameborder='0' src='blanco1.html'></iframe>
</center>
</td>
</tr>
</table>
</form>
<script type="text/javascript">
Zapatec.Calendar.setup({
weekNumbers : false,
showOthers : true,
showsTime : false,
step : 1,
electric : true,
inputField : "fch_produccion",
button : "btn_fch_produccion",
timeFormat : 24,
timeInterval : 05,
ifFormat : '%Y-%m-%d',
daFormat : '%Y-%m-%d'
});
</script>

 


</body>
</html>

 

 

 


reporte_diario.php


<html xmlns="www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<head><title>
busqueda lote
</title>
<link rel="stylesheet" href="/../herramientas/calendario/system.css"/>
<script type="text/javascript" src="/../herramientas/calendario/zapatec.js"></script>
<script type="text/javascript" src="/../herramientas/calendario/calendar.js"></script>
<script type="text/javascript" src="/../herramientas/calendario/calendar-es.js"></script>


<link rel="Stylesheet" href="/estilos/formscss.css">
</head>


<body class="cuerpo12">
<form name="formulario_busqueda_lote" method="post" action="produccion_dia.php">
<table align="center">
<tr >
<td>INGRESE NRO DEL LOTE
</td>
<td>
</td>
<td>
</td>
<td>
<input name="lote" class="estil_caja" type='text' size='7' title='lote'>
</td>


<td valign="middle" align="center"><input id="fch_produccion1" class="estil_caja" name="fch_produccion1" class="campo_fcha" type="text"
size ="13%" title='Fecha produccion1' readonly>
<img id='btn_fch_produccion1' title="Calendario para Seleccionar la Fecha de produccion inicial"
src='../herramientas/calendario/calendario_1.gif' border='0' style="cursor:pointer" >
</td>
<td valign="middle" align="center"><input id="fch_produccion2" class="estil_caja" name="fch_produccion2" class="campo_fcha" type="text"
size ="13%" title='Fecha produccion2' readonly>
<img id='btn_fch_produccion2' title="Calendario para Seleccionar la Fecha de produccion final"
src='../herramientas/calendario/calendario_1.gif' border='0' style="cursor:pointer" >
</td>

 


<td><input name="boton" type="submit" value="buscar"></td>
</tr>
</table>
</form>


<script type="text/javascript">
Zapatec.Calendar.setup({
weekNumbers : false,
showOthers : true,
showsTime : false,
step : 1,
electric : true,
inputField : "fch_produccion1",
button : "btn_fch_produccion1",
timeFormat : 24,
timeInterval : 05,
ifFormat : '%Y-%m-%d',
daFormat : '%Y-%m-%d'
});
</script>


<script type="text/javascript">
Zapatec.Calendar.setup({
weekNumbers : false,
showOthers : true,
showsTime : false,
step : 1,
electric : true,
inputField : "fch_produccion2",
button : "btn_fch_produccion2",
timeFormat : 24,
timeInterval : 05,
ifFormat : '%Y-%m-%d',
daFormat : '%Y-%m-%d'
});
</script>
</body>
</html>

 


produccion_dia.php


<?php
$lote=$_POST["lote"];
$fecha=$_POST["fch_produccion"]


$conectar= mysql_connect("localhost","root","sena");
mysql_select_db("tecnoavicola19",$conectar);
$resultado = mysql_query("SELECT lote,fch_produccion,recogida,total_primera,desechados FROM produccion WHERE (lote='$lote' and fch_produccion='$fecha')",$conectar) or die (mysql_error()) ;


echo "


<table width='100%' bgcolor='#5F9EA0' border='1'>
<tr>
<td align='center'>FECHA</td>
<td align='center'>RECOGIDA</td>
<td align='center'>LOTE</td>
<td align='center'>HUEVOS PRIMERA</td>
<td align='center'>DESECHADOS</td>
</tr>";

 

 


$sum_TP_Manana = $sum_TP_Manana + $fila[total_primera];
$sum_Des_Manana = $sum_Des_Manana + $fila[desechados];
$sum_TP_Mediodia = $sum_TP_Mediodia + $fila[total_primera];
$sum_Des_Mediodia = $sum_Des_Mediodia + $fila[desechados];
$sum_TP_Tarde = $sum_TP_Tarde + $fila[total_primera];
$sum_Des_Tarde = $sum_Des_Tarde + $fila[desechados];
$sum_TP_Adicional = $sum_TP_Adicional + $fila[total_primera];
$sum_Des_Adicional = $sum_Des_Adicional + $fila[desechados];

 


//Contador lineas (registros)
$numreg = 0;

 


while($fila = mysql_fetch_array($resultado))
//while ($row = mysql_fetch_row($resultado))
{
$sum_Total_Primera = $sum_Total_Primera + $fila[total_primera];
$sum_Desechados = $sum_Desechados + $fila[desechados];


echo"

 

 


<tr>
<td>$fila[fch_produccion]</td>
<td>$fila[recogida]</td>
<td>$fila[lote]</td>
<td>$fila[total_primera]</td>
<td>$fila[desechados]</td>
</tr>";

 

 

 

 

 

 

 

 


switch ($fila[recogida])

 


{

 


case 'Manana':
$sum_TP_Manana = $sum_TP_Manana + $fila[total_primera];
$sum_Des_Manana = $sum_Des_Manana + $fila[desechados];
break;
case 'Mediodia':
$sum_TP_Mediodia = $sum_TP_Mediodia + $fila[total_primera];
$sum_Des_Mediodia = $sum_Des_Mediodia + $fila[desechados];
break;
case 'Tarde':
$sum_TP_Tarde = $sum_TP_Tarde + $fila[total_primera];
$sum_Des_Tarde = $sum_Des_Tarde + $fila[desechados];
break;
case 'Adicional':
$sum_TP_Adicional = $sum_TP_Adicional + $fila[total_primera];
$sum_Des_Adicional = $sum_Des_Adicional + $fila[desechados];
break;
default:


}
//incrementamos en uno por cada iteración del bucle while
++$numreg;


}


$Total_TP=$sum_TP_Manana + $sum_TP_Mediodia + $sum_TP_Tarde + $sum_TP_Adicional;
$Total_DES=$sum_Des_Manana + $sum_Des_Mediodia + $sum_Des_Tarde + $sum_Des_Adicional;


echo"


<tr>
<td></td>
<td></td>
<td></td>


<td>Total HUEVOS PRIMERA : $Total_TP</td>
<td>Total DESECHADOS : $Total_DES</td>


</tr>";


echo "</table>";


echo"</table>";
echo "</br>"."</br>";
echo 'Numero total de registros procesados -> '.$numreg;
echo "</br>"."</br>";
echo 'Total Primera Manana -> '.$sum_TP_Manana;
echo "</br>";
echo 'Total Desechados Manana - > '.$sum_Des_Manana;
echo "</br>"."</br>";
echo 'Total Primera Mediodia -> '.$sum_TP_Mediodia;
echo "</br>";
echo 'Total Desechados Mediodia - > '.$sum_Des_Mediodia;
echo "</br>"."</br>";
echo 'Total Primera Tarde -> '.$sum_TP_Tarde;
echo "</br>";
echo 'Total Desechados Tarde - > '.$sum_Des_Tarde;
echo "</br>"."</br>";
echo 'Total Primera Adicional -> '.$sum_TP_Adicional;
echo "</br>";
echo 'Total Desechados Adicional - > '.$sum_Des_Adicional;


mysql_close($conectar);

 

 

🙂

Re: sumar datos de una consulta 16 Jun 2011, 19:45 #14

  • luigy69
  • Avatar de luigy69
  • DESCONECTADO
  • Karma:

Aunque el error te lo marque en la línea 6 lo tienes en la línea siguiente:

 

$fecha=$_POST["fch_produccion"]

 

Te falta el ; al final,

 

$fecha=$_POST["fch_produccion"];

 

Salu2

 

😉

Re: sumar datos de una consulta 21 Jul 2011, 06:49 #27

  • luis
  • Avatar de luis
  • DESCONECTADO
  • Karma:

Señores de Tu Informática Fácil.

Hace un mes y una semana ustedes me dieron la siguiente respuesta a la consulta de mi tema:

'sumar datos de una consuilta'.

Aunque el error te lo marque en la línea 6 lo tienes en la línea siguiente:

 

$fecha=$_POST["fch_produccion"]

Te falta el ;

Salu2

 

Les comento que corregí el detalle, como ustedes me dijeron, pero el problema de fondo no lo he podido solucionar, y es que no logro sumar los datos de una consulta que abarque un espacio de tiempo comprendido entre dos fechas. He intentado llamar las variables de las fechas fch_produccion1 y fch_produccion2 pero lo que me aparece en la consulta es lo siguiente: Numero total de registros procesados -> 0

 

Total Primera Manana -> 0

Total Desechados Manana - > 0

 

Total Primera Mediodia -> 0

Total Desechados Mediodia - > 0

 

Total Primera Tarde -> 0

Total Desechados Tarde - > 0

 

Total Primera Adicional -> 0

Total Desechados Adicional - > 0

 

Adjunto esta el codigo del formulario produccion.php, produccion_dia.php y reporte_diario.php para que me digan si es posible tratar el problema como lo estoy haciendo o debo enfocarlo de otra manera.

 

Gracias por la colaboracion hasta ahora prestada.

Conectados

Total de usuarios conectados 359 :: 0 Miembro(s) y 359 invitado(s).
Leyenda:  Administrador del Sitio Moderador Global Moderador Sancionado Usuario Invitado

Estadísticas

Total de mensajes : 379 | Total temas : 145 | Total miembros : 37533
Nuestro nuevo miembro : coro1959
JDL Forum