Foros del Web » Programando para Internet » PHP »

Ayuda Con cosulta de php

Estas en el tema de Ayuda Con cosulta de php en el foro de PHP en Foros del Web. hola estoy trabajando en un pequeño sistema en el que registro la pruduccio de algunos animales. Tengo que hacer una consulta que me obtenga la ...
  #1 (permalink)  
Antiguo 11/11/2008, 10:23
 
Fecha de Ingreso: noviembre-2008
Mensajes: 100
Antigüedad: 15 años, 5 meses
Puntos: 4
Busqueda Ayuda Con cosulta de php

hola estoy trabajando en un pequeño sistema en el que registro la pruduccio de algunos animales. Tengo que hacer una consulta que me obtenga la produccion anual, agrupada por meses. (todo lo guardo en una sola fecha) ya tengo el query, pero no logro imprimir los resultados que obtengo de la BD

mi consulta es la siguiente:

$sql1="SELECT MONTH(fecha),sum(crias) as crias,sum(sexado)as sexado,sum(rip)as rip,sum(sx1)as hembras,sum(sx)as machos FROM reg_sala WHERE YEAR(FECHA)='$year'";

pero no logro imprimir el resultado en mi php. alguna idea de cmo hacerlo???
  #2 (permalink)  
Antiguo 11/11/2008, 10:39
Avatar de ACX_POISON  
Fecha de Ingreso: abril-2008
Ubicación: Talca-Chile
Mensajes: 750
Antigüedad: 16 años
Puntos: 7
Respuesta: Ayuda Con cosulta de php

supongo que haces algo asi
Código PHP:
$sql1="SELECT MONTH(fecha),sum(crias) as crias,sum(sexado)as sexado,sum(rip)as rip,sum(sx1)as hembras,sum(sx)as machos FROM reg_sala WHERE YEAR(FECHA)='$year'";
$res=mysql_query($sql1)or die(mysql_error());//ejecuto consulta
$Totales=mysql_fetch_row($res);//llevo resultado a array
$crias=$Totales[0];//  asigno valores de array a variable
$sexado=$Totales[1];
$rip=$Totales[2]; 
creo que asi puede servir....
__________________
Me junto con los que Saben, Queriendo Saber.
  #3 (permalink)  
Antiguo 11/11/2008, 10:49
 
Fecha de Ingreso: noviembre-2008
Mensajes: 100
Antigüedad: 15 años, 5 meses
Puntos: 4
Respuesta: Ayuda Con cosulta de php

de hecho si hago exactamente eso

$sql1="SELECT MONTH(fecha),sum(crias) as crias,sum(sexado)as sexado,sum(rip)as rip,sum(sx1)as hembras,sum(sx)as machos FROM reg_sala WHERE YEAR(FECHA)='$year'";


$resp = mysql_query($sql1);
$row = mysql_fetch_array($resp);
$total = $row[crias];
$total1 = $row[sexado];
$total2 = $row[rip];
$total3 = $row[hembras];
while ($row=mysql_fetch_array($result));

echo"<td>$total</td>";
echo"<td>$total1</td>";
echo"<td>$total2</td>";
echo"<td>$total3</td>";


echo "</table> \n";
} else {
echo"no se ha encontrado ningun registro \n";

}
$total4 = $row[machos];


pero solo me muestra el dato de una solo mes y no de todos los que tengo en la BD
  #4 (permalink)  
Antiguo 11/11/2008, 10:55
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Ayuda Con cosulta de php

Si asignas las variables antes del while (es decir, fuera de él) no te va a actualizar su valor en cada iteración. Deberías tenerlas dentro.

Por otro lado, la primera asignación a $row te sobra. Estarás avanzando una fila en la consulta absurdamente en otro caso. Ya se avanzan todas ellas con la condición que has puesto en el while.

El código que has puesto es además algo confuso. ¿Has cortado algún trozo? Porque el 'else' que aparece no tiene sentido ninguno como alternativa de un 'while'.

En cuanto a la consulta, creo que te faltaría usar algún GROUP BY si lo quieres acumular por meses.

Un saludo.
  #5 (permalink)  
Antiguo 11/11/2008, 10:57
Avatar de ACX_POISON  
Fecha de Ingreso: abril-2008
Ubicación: Talca-Chile
Mensajes: 750
Antigüedad: 16 años
Puntos: 7
Respuesta: Ayuda Con cosulta de php

prueba esto:

Código PHP:
$sql1="SELECT MONTH(fecha),sum(crias) as crias,sum(sexado)as sexado,sum(rip)as rip,sum(sx1)as hembras,sum(sx)as machos FROM reg_sala WHERE YEAR(FECHA)='$year'";
$res=mysql_query($sql1)or die(mysql_error());//ejecuto consulta
$num_reg=mysql_num_rows($res);//obtengo numero de registro obtenidos en consulta
if($num_reg 0)

          echo
"<b>TOTAL de REGISTROS : $num_reg</b><br>";

        while(
$T=mysql_fetch_array($res))
        {
                  
$crias $T["crias"];
                  
$sexado $T["sexado"];
                  
$rip $T["rip"];
                  
$hembras $T["hembras"];

                  echo
"$crias <br>";
                  echo
"$csexado<br>";
                  echo
"$rip <br>";
                  echo
"$hembras <br><br>";
         }
}
else
{
      echo
"Sin Registros...<br>";

Prueba Con esto y haber que pasa...
__________________
Me junto con los que Saben, Queriendo Saber.
  #6 (permalink)  
Antiguo 11/11/2008, 11:06
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Ayuda Con cosulta de php

Siempre he dicho que es mejor enseñar a pescar que darlo todo masticado...
Pero en fin.
  #7 (permalink)  
Antiguo 11/11/2008, 11:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ayuda Con cosulta de php

Cita:
Prueba Con esto y haber que pasa...
y haber que pasa!?? (wtf)

estoy con los que enseñan, y no dan...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 11/11/2008, 11:33
 
Fecha de Ingreso: noviembre-2008
Mensajes: 100
Antigüedad: 15 años, 5 meses
Puntos: 4
Respuesta: Ayuda Con cosulta de php

ya me salio... muchas gracias ACX_POISON... te debo mil.. jejejejjejejeje... haa cabe aclar que tenia algunas un error en mi CONSULTA.. aca la corrigo para q a alguien le sirva sale...



$sql1="SELECT MONTH(fecha) as mes,sum(crias) as crias,sum(sexado)as sexado,sum(rip)as rip,sum(sx1)as hembras,sum(sx)as machos FROM reg_sala WHERE YEAR(FECHA)='$year' GROUP BY mes order by mes";



Gracias de nuevo
........

salu2
  #9 (permalink)  
Antiguo 11/11/2008, 11:37
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Ayuda Con cosulta de php

De nada, chaval... has estado bien identificando tú sólo el problema de la consulta... sin copy/paste.

Felicidades.
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 05:42.