Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: RedZer en 10 Diciembre 2010, 20:15 pm



Título: Como Agrupar una variable en php
Publicado por: RedZer en 10 Diciembre 2010, 20:15 pm
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
  1.  
  2.      Subject       StartTime
  3.  
  4.      ---------        ----------------
  5.  
  6.      148100-0     2010-12-01
  7.  
  8.      298852-0     2010-12-13
  9.  
  10.      298852-0     2010-12-23
  11.  
  12.      366005-12   2010-12-22
  13.  
  14.      366005-12   2010-12-29
  15.  
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
  1.  
  2.      ficha          codigo        oms
  3.  
  4.      ------        --------        ---------
  5.  
  6.      148100        0              A00
  7.  
  8.      298852        0              A00
  9.  
  10.      366005        12            C00
  11.  
  12.  


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
  1.  
  2. $ini="2010-12-01 00:00:00";
  3. $fin="2010-12-31 23:59:59";
  4. conectar();
  5. $jcalendar=mysql_query("select * FROM jqcalendar  WHERE StartTime   BETWEEN '$ini' AND '$fin' AND asistencia='1' GROUP BY Subject ");
  6.    desconectar();
  7.  
  8.  
  9. if (mysql_num_rows($jcalendar)>0)
  10.  
  11. {
  12.  
  13. while ($rowj=mysql_fetch_array($jcalendar))
  14.  
  15. {
  16.   //sepasro la ficha del codigo que extraigo de la tabla jcalendar
  17.   $ficha=$rowj[1];
  18.   $partes=explode('-',$ficha);
  19.   $aa=$partes[0];
  20.   $bb=$partes[1];
  21.  
  22.  
  23.  
  24.  
  25. conectar();
  26. $queEmp2 = mysql_query("
  27. SELECT oms FROM reporte where ficha='$aa' and codigo='$bb' GROUP BY oms  ");
  28. $rowEmp2 = mysql_fetch_assoc($queEmp2);
  29. echo  $cat=$rowEmp2['oms']."<br>";
  30. desconectar();
  31.  
  32.  
  33. }
  34.  
  35.  
  36. }//cierro el if  
  37.  

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
  1. conectar();
  2. $queEmp2 = mysql_query("
  3. SELECT count(oms) as num FROM reporte where ficha='$aa' and codigo='$bb' GROUP BY oms  ");
  4. $rowEmp2 = mysql_fetch_assoc($queEmp2);
  5. echo  $cat=$rowEmp2['num']."<br>";
  6. desconectar();  
  7.  

pero en esta me aroja 3 unos asi:
1
1
1
porfavor me podrian ayudar llevo ya mas de un dia con esto


Título: Re: Como Agrupar una variable en php
Publicado por: Shell Root en 11 Diciembre 2010, 00:21 am
Antes que nada... Printea la query y ejecútala en el MySQL.


Título: Re: Como Agrupar una variable en php
Publicado por: RedZer en 11 Diciembre 2010, 00:59 am
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


Título: Re: Como Agrupar una variable en php
Publicado por: Shell Root en 11 Diciembre 2010, 01:03 am
Pero las querys, eso son los resultados, YO QUIERO SON LAS QUERYS!


Título: Re: Como Agrupar una variable en php
Publicado por: RedZer en 11 Diciembre 2010, 01:25 am
mira sinceramente no te entiendo yo imprimi la primera consulta asi no se si te referias a esto
Código
  1. echo $jcalendar=mysql_query("select * FROM jqcalendar  WHERE StartTime   BETWEEN '$ini' AND '$fin' AND asistencia='1' GROUP BY Subject ");
  2.  
  3.  
yel resultado que me aroja de esa es
Resource id #4
en la seguhnda consulta lo imprimi asi
Código
  1. echo $queEmp2 = mysql_query("
  2. SELECT distinct diags_clave FROM reporte where ficha='$aa' and codigo='$bb' GROUP BY diags_clave  ");
  3.  
y el resultado que me vota es esto
Resource id #6Resource id #8Resource id #10


Título: Re: Como Agrupar una variable en php
Publicado por: Shell Root en 11 Diciembre 2010, 01:37 am
ahhahahaa quiero que hagas esto,
Código
  1. 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.


Título: Re: Como Agrupar una variable en php
Publicado por: RedZer en 11 Diciembre 2010, 01:49 am
jajaja okas amigo mira ise el de la consulta que esta dentro del while
Código
  1. print "SELECT count(oms) as num FROM reporte where ficha='$aa' and codigo='$bb' GROUP BY oms";
  2.  
y el resultadop fue esto
Código
  1. 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
  2.  
y lo que me voto msql con esta consulta
Código
  1. SELECT count(oms) AS num
  2. FROM reporte
  3. WHERE ficha = '148100'
  4. AND codigo = '0'
  5. GROUP BY oms
  6. LIMIT 0 , 30
  7.  
resultado
Código
  1. num  
  2. ----
  3. 1
  4.  
  5.  
  6.  


Título: Re: Como Agrupar una variable en php
Publicado por: Shell Root en 11 Diciembre 2010, 02:01 am
Bueno, y mi pregunta ahora, es: Como quieres que agrupe, si usa diferentes consultas?

PD: Ya hasta me confundí, hahahahaa


Título: Re: Como Agrupar una variable en php
Publicado por: RedZer en 11 Diciembre 2010, 02:05 am
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


Título: Re: Como Agrupar una variable en php
Publicado por: Shell Root en 11 Diciembre 2010, 02:08 am
Pero si son 3 Querys diferentes como quieres que las agrupe. XD
Código
  1. SELECT COUNT(oms) AS num FROM reporte WHERE ficha='148100' AND codigo='0' GROUP BY oms;
  2. SELECT COUNT(oms) AS num FROM reporte WHERE ficha='298852' AND codigo='0' GROUP BY oms;
  3. SELECT COUNT(oms) AS num FROM reporte WHERE ficha='366005' AND codigo='12' GROUP BY oms


Título: Re: Como Agrupar una variable en php
Publicado por: RedZer en 11 Diciembre 2010, 02:13 am
aja bro pero mira en la tabla reporte  el oms A00 se repite dos veces

Código
  1.  
  2.     ficha          codigo        oms
  3.  
  4.      ------        --------        ---------
  5.  
  6.      148100        0              A00
  7.  
  8.      298852        0              A00
  9.  
  10.      366005        12            C00
  11.  

y yo lo que quiero es que aparezca asi
A00=2
C00=1

o dime como hacerle bro para hacer lo que deceo si me entiendes lo que deceo hacer?


Título: Re: Como Agrupar una variable en php
Publicado por: Shell Root en 11 Diciembre 2010, 18:39 pm
Estáis un poco confundido, mira...

Si ejecutas la siguiente query, sólo te debe de salir 1 registro,
Código
  1. SELECT COUNT(oms) AS num FROM reporte WHERE ficha='148100' AND codigo='0' GROUP BY oms;

Lo mismo sucede si ejecutas,
Código
  1. SELECT COUNT(oms) AS num FROM reporte WHERE ficha='298852' AND codigo='0' GROUP BY oms;

y también en,
Código
  1. SELECT COUNT(oms) AS num FROM reporte WHERE ficha='366005' AND codigo='12' GROUP BY oms;

De ahí es donde sale los tres 1's. Ahora si haces lo siguiente de seguro te salen 2 registros, porque cumplen con la condición,
Código
  1. SELECT COUNT(oms) AS num FROM reporte WHERE codigo='0' GROUP BY oms;

Ejecútalo y dime que es verdad.


Título: Re: Como Agrupar una variable en php
Publicado por: RedZer en 11 Diciembre 2010, 19:40 pm
cierto amigo me aroja esto
2
2


Título: Re: Como Agrupar una variable en php
Publicado por: Shell Root en 11 Diciembre 2010, 19:55 pm
Bueno y supongo que sabes a que se debe ese resultado, verdad?


Título: Re: Como Agrupar una variable en php
Publicado por: RedZer en 11 Diciembre 2010, 20:06 pm
si por que hay dos fichas que su codigo es cero y en la consulta estoy condicionando que me cuente las oms donde el codigo sea igual a cero
SELECT COUNT(oms) AS num FROM reporte WHERE codigo='0' GROUP BY oms;


Título: Re: Como Agrupar una variable en php
Publicado por: Shell Root en 11 Diciembre 2010, 20:24 pm
hahahahaha pero lo que preguntaba era por las necesidades que tienes, no de la query anterior. Osea ya saber como resolver tu problema?


Título: Re: Como Agrupar una variable en php
Publicado por: RedZer en 11 Diciembre 2010, 20:28 pm
jajaja encontre otra solucion mi brother  voy a insertar en la tabla jcalendar el oms no lo habia echo por que esa tbal es de una agenda prediseñada y esta programada con ajax,php(poo) y yo ala poo aun no le entiendo muy bien pero ayer ya no me quedo de otra mas que darle una leida de volda y pues ya logre insertar el oms en esa tabla, y pues de la otra manera de como lo queria hacer no supe como resolverlo el problema es que s eme vino el tiempo encima


Título: Re: Como Agrupar una variable en php
Publicado por: RedZer en 11 Diciembre 2010, 21:29 pm
shales me sigue asiendo lo mismo ahora mi tabla jcalendar quedo asi

Código
  1. Subject             StartTime             oms
  2. ------------         -----------            -------
  3. 148100-0          2010-12-01           A00
  4. 298852-0          2010-12-02           A00
  5. 298852-0          2010-12-07           A00
  6.  
  7.  

como le puedo hacer bro ya no ecnuentro solucion  :(