Como Agrupar una variable en php

Iniciado por RedZer, 10 Diciembre 2010, 20:15 PM

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

RedZer

hola foreros llevo ya 2 dias con esto pense que lo habia resolvido pero no es asi pasa lo siguiente tengo dos tablas la primer tabla se llama jqcalendar tiene la siguiente estructura:
Código (sql) [Seleccionar]

 
      Subject       StartTime

      ---------        ----------------

      148100-0     2010-12-01

      298852-0     2010-12-13
 
      298852-0     2010-12-23
 
      366005-12   2010-12-22

      366005-12   2010-12-29

bueno como ven son dos campos que tiene esa tabla el primer campo que es Subject almacena la ficha del usuario el segundo campo que es StartTime almacena la fecha a la que asistira el usuario como pueden ver se repite varias veces la ficha y yo no quiero eso asi que use group by para areglar ese problema , bueno la otra tabla es esta se llama reporte tiene la siguiente estructura
Código (sql) [Seleccionar]


      ficha          codigo        oms
 
      ------        --------        ---------

      148100        0              A00
 
      298852        0              A00
   
      366005        12            C00



esta tabla reporte tiene 3 campos la primera es ficha la segunda codigo , en estos dos campos are una aclaracion ya que la ficha del paciente va acompañada de su respectivo codigo ejemplo 366005-12 despues del guion es el codigo en este caso el codigo es 12 bueno como pueden ver en esta tabla reporte los inserto por separado y en la tabla jqcalendar lo inserto junto osea la ficha y el codigo . por que? bueno por que la tabla jqcalendar es de una agenda ya prediseñada y si le agregaba 2 campos mas osea ficha y codigo me marcaria error la agenda asi que solo ocupe el campo subject que ya estaba creado en esa tabla para almacenar la ficha . bueno tengo el siguiente codigo

Código (php) [Seleccionar]


$ini="2010-12-01 00:00:00";
$fin="2010-12-31 23:59:59";
conectar();
$jcalendar=mysql_query("select * FROM jqcalendar  WHERE StartTime   BETWEEN '$ini' AND '$fin' AND asistencia='1' GROUP BY Subject ");
    desconectar();

 
if (mysql_num_rows($jcalendar)>0)

{

while ($rowj=mysql_fetch_array($jcalendar))

{
   //sepasro la ficha del codigo que extraigo de la tabla jcalendar
   $ficha=$rowj[1];
   $partes=explode('-',$ficha);
   $aa=$partes[0];
   $bb=$partes[1];




conectar();
$queEmp2 = mysql_query("
SELECT oms FROM reporte where ficha='$aa' and codigo='$bb' GROUP BY oms  ");
$rowEmp2 = mysql_fetch_assoc($queEmp2);
echo  $cat=$rowEmp2['oms']."<br>";
desconectar();


}

             
}//cierro el if 


bueno como los reportes son por rango de fecha por eso primero ago una consulta a la tabla jcalendar para buscar el rango de fecha que introduzca el usuario de ahi si existen esas fechas introducidas yo lo que quiero es contar cuantos oms se repiten de la tabla reporte para eyo valido que la ficha y el codigo que se extrae de la tabla jcalendar sea igual ala que esta en la tabla reporte pero no me sale me aroja esto
A00
A00
9999
siendo que me deberia de arojar esto
A00
9990

creo que no me esta agrupando las oms al momento de hacer GROUP BY oms ya intete hacer esta consulta tambien

Código (php) [Seleccionar]

conectar();
$queEmp2 = mysql_query("
SELECT count(oms) as num FROM reporte where ficha='$aa' and codigo='$bb' GROUP BY oms  ");
$rowEmp2 = mysql_fetch_assoc($queEmp2);
echo  $cat=$rowEmp2['num']."<br>";
desconectar(); 


pero en esta me aroja 3 unos asi:
1
1
1
porfavor me podrian ayudar llevo ya mas de un dia con esto
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

Shell Root

Antes que nada... Printea la query y ejecútala en el MySQL.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

RedZer

amigooo sell como siempre apoyandome yevo dias con este error mira ya imprimi las query y me aroja esto
A00
A00
9999
si me entendiste lo que deceo hacer
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

Shell Root

Pero las querys, eso son los resultados, YO QUIERO SON LAS QUERYS!
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

RedZer

mira sinceramente no te entiendo yo imprimi la primera consulta asi no se si te referias a esto
Código (php) [Seleccionar]

echo $jcalendar=mysql_query("select * FROM jqcalendar  WHERE StartTime   BETWEEN '$ini' AND '$fin' AND asistencia='1' GROUP BY Subject ");


yel resultado que me aroja de esa es
Resource id #4
en la seguhnda consulta lo imprimi asi
Código (php) [Seleccionar]

echo $queEmp2 = mysql_query("
SELECT distinct diags_clave FROM reporte where ficha='$aa' and codigo='$bb' GROUP BY diags_clave  ");

y el resultado que me vota es esto
Resource id #6Resource id #8Resource id #10
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

Shell Root

ahhahahaa quiero que hagas esto,
Código (php) [Seleccionar]
print "SELECT count(oms) as num FROM reporte where ficha='$aa' and codigo='$bb' GROUP BY oms";

Para ver los valores de las variables. Además de mostradme el valor que salio del MySQL.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

RedZer

jajaja okas amigo mira ise el de la consulta que esta dentro del while
Código (php) [Seleccionar]

print "SELECT count(oms) as num FROM reporte where ficha='$aa' and codigo='$bb' GROUP BY oms";

y el resultadop fue esto
Código (php) [Seleccionar]

SELECT count(oms) as num FROM reporte where ficha='148100' and codigo='0' GROUP BY oms SELECT count(oms) as num FROM reporte where ficha='298852' and codigo='0' GROUP BY oms SELECT count(oms) as num FROM reporte where ficha='366005' and codigo='12' GROUP BY oms

y lo que me voto msql con esta consulta
Código (php) [Seleccionar]

SELECT count(oms) AS num
FROM reporte
WHERE ficha = '148100'
AND codigo = '0'
GROUP BY oms
LIMIT 0 , 30

resultado
Código (sql) [Seleccionar]

num 
----
1



Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

Shell Root

Bueno, y mi pregunta ahora, es: Como quieres que agrupe, si usa diferentes consultas?

PD: Ya hasta me confundí, hahahahaa
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

RedZer

jaja si brother yo dede ayer estoy con esto :rolleyes: mira es cierto haga diferentes consultas pero fijate al prinicpio cuando explique lo que deceo hacer la primera consulta la ocupo para buscar el rango de fechas osea la de inicio y la final ok , y la segunda consulta lo ocupo para contar el campo oms que se encuentra en la tabla reporte pero siempre y cuando la ficha y el codigo sea igual al que esta en la tabla jcalendar
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

Shell Root

Pero si son 3 Querys diferentes como quieres que las agrupe. XD
Código (sql) [Seleccionar]
SELECT count(oms) as num FROM reporte where ficha='148100' and codigo='0' GROUP BY oms;
SELECT count(oms) as num FROM reporte where ficha='298852' and codigo='0' GROUP BY oms;
SELECT count(oms) as num FROM reporte where ficha='366005' and codigo='12' GROUP BY oms

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.