Foros del Web » Programando para Internet » PHP »

Problema con incremento de variables.

Estas en el tema de Problema con incremento de variables. en el foro de PHP en Foros del Web. Disculpen lo que voy a pedirles pero estoy agotado... Revisen el tema que puse en Mysql SELECT sin repetidos , acá les pongo el código ...
  #1 (permalink)  
Antiguo 15/10/2012, 14:12
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 11 meses
Puntos: 0
Problema con incremento de variables.

Disculpen lo que voy a pedirles pero estoy agotado... Revisen el tema que puse en Mysql SELECT sin repetidos, acá les pongo el código php abreviado porque todo no se puede. Necesito ayuda!

Este es el incremento que le hago a las variables y las consultas.

class ContarEstrellas extends Conectar
{

protected $euno=0;
protected $edos=0;
protected $etres=0;
protected $ecuatro=0;
protected $ecinco=0;
protected $eseis=0;
protected $esiete=0;
protected $eocho=0;
protected $enueve=0;
protected $ediez=0;
protected $eonce=0;

//*****************************
protected $exx;
protected $enum_resultados;
//******************************
protected $epp=array();
protected $eyy=array();
//*********************************************
public function Econsulta()
{
$ebuscar = "SELECT jugadados.esuno,jugadados.esdos FROM jugadados ORDER BY jugadados.jugaid";

$this->exx = mysql_query($ebuscar,$this->db);

echo mysql_error($this->db);

$this->enum_resultados = mysql_num_rows($this->exx);


}
//**************************************************

public function Eincremento()
{
for($i=0; $i<$this->enum_resultados; $i++)
{
$eec = mysql_fetch_array($this->exx);
while($eelementos = each($eec))
{
switch($eelementos["value"])
{
case 1:
$this->euno = $this->euno+1;
break;
case 2:
$this->edos = $this->edos+1;
break;
case 3:
$this->etres = $this->etres+1;
break;
case 4:
$this->ecuatro = $this->ecuatro+1;
break;
case 5:
$this->ecinco = $this->ecinco+1;
break;
case 6:
$this->eseis = $this->eseis+1;
break;
case 7:
$this->esiete = $this->esiete+1;
break;
case 8:
$this->eocho = $this->eocho+1;
break;
case 9:
$this->enueve = $this->enueve+1;
break;
case 10:
$this->ediez = $this->ediez+1;
break;
case 11:
$this->eonce = $this->eonce+1;
break;
}
}
}
}

//************************************************** ****
public function EcreaTabla()
{

$ekkk = array($this->euno, $this->edos, $this->etres, $this->ecuatro, $this->ecinco, $this->eseis, $this->esiete, $this->eocho, $this->enueve, $this->ediez, $this->eonce);

foreach ($ekkk as $ek1 => $ev1) {
foreach ($ekkk as $ek2 => $ev2) {
if ($ek1 != $ek2) {
if ($ev1 == $ev2) {
unset($ekkk[$ek1]);

}
}
}
}

$this->epp = array_values($ekkk);

asort($this->epp);


$this->eyy = array(1=>$this->euno, 2=>$this->edos, 3=>$this->etres, 4=>$this->ecuatro, 5=>$this->ecinco, 6=>$this->eseis, 7=>$this->esiete, 8=>$this->eocho, 9=>$this->enueve, 10=>$this->ediez, 11=>$this->eonce);

}

Última edición por alex760125; 15/10/2012 a las 14:26
  #2 (permalink)  
Antiguo 15/10/2012, 14:31
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 15 años, 1 mes
Puntos: 168
Respuesta: Problema con incremento de variables.

1 - Usa el highlight para postear código, en el lenguaje correspondiente.
2 - Indica que problema tenes, no somos adivinos.
3 - Indica en que parte del código tenes el problema, no me voy a leer todo el código.
  #3 (permalink)  
Antiguo 15/10/2012, 15:24
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Problema con incremento de variables.

Cita:
Iniciado por rodrigo791 Ver Mensaje
1 - Usa el highlight para postear código, en el lenguaje correspondiente.
2 - Indica que problema tenes, no somos adivinos.
3 - Indica en que parte del código tenes el problema, no me voy a leer todo el código.

Respuestas:

1- Como contestaste ya no me lo permiten, es PHP.
2-Si lees mi tema en Mysql lo verás.
3-No sé en que parte del código tengo problemas.
  #4 (permalink)  
Antiguo 15/10/2012, 17:24
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 15 años, 1 mes
Puntos: 168
Respuesta: Problema con incremento de variables.

Cita:
Iniciado por alex760125 Ver Mensaje
Respuestas:
1- Como contestaste ya no me lo permiten, es PHP.
No entendes lo que te digo, antes de postear un tema, tenes un combo ( select ) que dice Highlight, no es difícil usarlo. Solo pulsalo, elegí el lenguaje correspondiente y mete el código dentro de las etiquetas que te genera el combo-


Cita:
Iniciado por alex760125 Ver Mensaje
Respuestas:

2-Si lees mi tema en Mysql lo verás.
No tengo que leer ningún tema, porque si el problema es php, pues no deberías postear tu problema 2 veces, podes ser sancionado por eso.

Cita:
Iniciado por alex760125 Ver Mensaje
Respuestas:

3-No sé en que parte del código tengo problemas.
Me refiero a que si podes ser mas específico y decirnos cual es el problema, ¿que no funciona como vos queres? no tenemos que descifrar que hace todo tu código para saber lo que queres hacer y que está mal
Todo lo que te digo es para que sea mas fácil nuesttra ayuda.
  #5 (permalink)  
Antiguo 15/10/2012, 17:50
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Problema con incremento de variables.

Tengo una tabla mysql con 526 filas(entrada de 5 números cada una), luego inserto otra fila con código php, reviso phpmyadmin y todo bien.... Creo un programa para analizar repeticiones de números en la tabla mysql, el mismo hace dos tablas, una con la anterior data y otra con la nueva y sucede q al fijarme en todos los números, los últimos que ingresé aparecen corridos dos lugares en la segunda tabla(en ves de un lugar), como si fueran leídos doble. Les comento que el código php lo probé por mi cuenta con otros datos y funciona bien..[/B]

Acá subí la imagen http://i46.tinypic.com/2elxtva.jpg
En verde mi último registro. Sin verde la tabla nueva.
Me he dado cuenta que no hay repeticiones impares(Abajo en rojo, q son las repeticiones de cada número), parece que recibo todos los registros dobles desde Mysql.... Cuando veo la tabla mysql desde phpmyadmin todo se ve bien.

Pequeña muestra de la tabla Mysql http://i48.tinypic.com/iyfr7n.jpg

Nota para administradores: Cuando se tiene un problema mixto, en mi caso entre PHP y MYSQL, si uno es novato y no tiene idea dónde está el problema, creo que el foro complica muchoo las cosas siendo tan estrictos en separar esos dos temas que vienen de la mano. Llevo dos días de un lado a otro, gracias!

Última edición por alex760125; 15/10/2012 a las 18:04
  #6 (permalink)  
Antiguo 15/10/2012, 18:58
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema con incremento de variables.

Cita:
Nota para administradores: Cuando se tiene un problema mixto, en mi caso entre PHP y MYSQL, si uno es novato y no tiene idea dónde está el problema, creo que el foro complica muchoo las cosas siendo tan estrictos en separar esos dos temas que vienen de la mano. Llevo dos días de un lado a otro, gracias!
No es que seamos estrictos, somos razonables al separar las cosas entre MySQL y PHP por motivos bastante simples:
1) No todos los que trabajan en bases de datos programan, e incluso no todos los que programan lo hacen en PHP.
2) El que uses MySQL no requiere que seas programador. Se puede ser DBA y jamás haber hecho ni una linea de programación, porque ni siquiera usan el mismo lenguaje. Son entidades completamente distintas y separadas. Dicho en pocas palabras, PHP usa BBDD, pero las BBDD no usan PHP...
3) Para los analistas de BBDD, y DBA, el lenguaje de programación es un texto que ensucia al SQL, esconde problemas, confunde la lectura, y escamotea los inconvenientes dentro de las variables, que en MySQL simplemente, no existen.
4) La lógica de resolución de un programa no tiene relación con la lógica de diseño de estructura de datos. La de programación se orienta a procesos; la de datos se orienta a información. No son lo mismo, aunque para poder ver la diferencia se requiere experiencia (mucha) y una muy buena dosis de estudios.

Como ya te han hecho ver aquí, y también yo mismo en el Foro de MySQL, ambos tenemos el mismo inconveniente con tus post: No se entiende claramente en qué consiste el problema, y tampoco se entiende bien qué es lo que construyes al crear esa tabla de números que no parecen tener lógica.
Para ser simple, me he pasado más de una hora tratando de ver cuál es la relación entre los números, cómo es que "ordenas" esa tabla, e incluso intentado encontrar las "repeticiones", todo infructuosamente.

También vine hasta este foro (participo aquí ocasionalmente), y revisé linea a linea tu código PHP, sin lograr deducir ninguna de las cosas anteriores.

Francamente, es frustrante, porque además de no explicar claramente lo que te pasa, tanto aquí como en el otro foro, respondes con evasivas a preguntas concretas.

Si al menos te pudieses poner a responder exactamente lo que preguntamos (en alguno de los dos foros), sin esconder la información como si creyeses que te vamos a plagiar un algoritmo valioso que competiría con el de Google (disculpa el chiste), es posible que ya hubiésemos obtenido una respuesta útil para ti.
Por favor, dejate de vueltas y explica cuál es el método que usas y en base a qué criterios para construir esa tabla, para qué sirve y en qué consiste ese "análisis de repeticiones" que supuestamente haces.
Danos algo concreto en que trabajar.


PD: Respecto a los códigos "abreviados", como dices, no sirven para nada, porque no podemos saber si en la parte "abreviada" no hay algo que sea lo que precisamente cause el problema...
Como ya te dijeron, no somos adivinos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 15/10/2012 a las 19:06
  #7 (permalink)  
Antiguo 15/10/2012, 19:42
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Problema con incremento de variables.

Gracias gnzsoloyo por el tiempo que has invertido en ayudarme.... Te explico: Yo recibo los datos de una tabla Mysql, como puedes ver son 5 números por fila...... Qué significan?... Pues la verdad no sé qué tenga que ver.... Son números que han salido en un juego de lotería.

1- Obtengo las filas con el for() y cada número con el while() que los comparo con un switch(), donde hago un incremento cada vez que sale.

2-He explicado muchas veces que las casillas en rojo son las veces que se repite cada número y para obtenerlo uso el foreach donde elimino los repetidos para que queden las repeticiones. En las casillas amarillas van los números que se repiten lo que diga la roja. Después uso un código para lograr la tabla, abajo voy a poner el de la tabla sin verde, que es la que obtengo después de "INSERT INTO jugadas (uno, dos, tres, cuatro, cinco) values ('".$no."', '".$os."', '".$es."', '".$ro."', '".$co."')";http://i47.tinypic.com/2m5z8kj.jpg

3- Puedes ver 5 números en verde en la primera, esa fue la última entrada, cuando leo, el 2 debería estar abajo en 91, 10 en 95, 8 en 99, 23 en 113 y 25 en 117 pero están corridos dos lugares.http://i46.tinypic.com/2elxtva.jpg


public function EtablaNormal()
{
echo "<table>";

echo "<tr>";
foreach ($this->epp as $ok1 => $ov1) {
echo "<td valign='bottom'>";
echo "<table border='1'>";
foreach ($this->eyy as $ok2 => $ov2){
if ($ov1 == $ov2){
echo "<tr>"."<td bgcolor='#FFFF00'>".$ok2."</td>"."</tr>";}}
echo "<tr>"."<td bgcolor='#FF0000'>".$ov1."</td>"."</tr>";
echo "</table>";
echo "</td>";}

echo "<td valign='bottom'>&nbsp;</td>";
echo "<td valign='bottom'>&nbsp;</td>";
echo "<td valign='bottom'>&nbsp;</td>";
echo "<td valign='bottom'>&nbsp;</td>";
echo "<td valign='bottom'>&nbsp;</td>";
echo "<td valign='bottom'>&nbsp;</td>";
}En esta tabla con los foreach comparo las repeticiones con las veces que se repite cada número del último array().

No pongo todo el programa con sus variables porque el foro no lo permite por espacio, pero además no hace falta porque están declaradas e incrementadas igual, es cuestión de ampliar los protected y los array().

Última edición por alex760125; 16/10/2012 a las 04:17
  #8 (permalink)  
Antiguo 16/10/2012, 04:22
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Problema con incremento de variables.

Cita:
Iniciado por alex760125 Ver Mensaje

Me he dado cuenta que no hay repeticiones impares(Abajo en rojo), parece que recibo todos los registros dobles desde Mysql.http://i46.tinypic.com/2elxtva.jpg

Este es el incremento que le hago a las variables y las consultas.

Código PHP:
Ver original
  1. class ContarEstrellas extends Conectar
  2. {
  3.  
  4. protected $euno=0;
  5. protected $edos=0;
  6. protected $etres=0;
  7. protected $ecuatro=0;
  8. protected $ecinco=0;
  9. protected $eseis=0;
  10. protected $esiete=0;
  11. protected $eocho=0;
  12. protected $enueve=0;
  13. protected $ediez=0;
  14. protected $eonce=0;// Esto hasta $cincuenta.
  15.  
  16. //*****************************
  17. protected $exx;
  18. protected $enum_resultados;
  19. //******************************
  20. protected $epp=array();
  21. protected $eyy=array();
  22. //*********************************************
  23. public function Econsulta()
  24. {
  25.  $ebuscar = "SELECT jugadas.uno,jugadas.dos,jugadas.tres,jugadas.cuatro,jugadas.cinco FROM jugadas ORDER BY jugadas.jugadaid";
  26.  
  27. $this->exx = mysql_query($ebuscar,$this->db);
  28.  
  29. echo mysql_error($this->db);
  30.  
  31. $this->enum_resultados = mysql_num_rows($this->exx);
  32.  
  33.  
  34. }
  35. //**************************************************
  36.  
  37. public function Eincremento()
  38. {
  39. for($i=0; $i<$this->enum_resultados; $i++)
  40. {
  41. $eec = mysql_fetch_array($this->exx);
  42. while($eelementos = each($eec))
  43. {
  44. switch($eelementos["value"])
  45. {
  46.     case 1:
  47.         $this->euno = $this->euno+1;
  48.         break;
  49.     case 2:
  50.         $this->edos = $this->edos+1;
  51.         break;
  52.     case 3:
  53.         $this->etres = $this->etres+1;
  54.         break;
  55.     case 4:
  56.         $this->ecuatro = $this->ecuatro+1;
  57.         break;
  58.     case 5:
  59.         $this->ecinco = $this->ecinco+1;
  60.         break;
  61.     case 6:
  62.         $this->eseis = $this->eseis+1;
  63.         break; 
  64.     case 7:
  65.         $this->esiete = $this->esiete+1;
  66.         break;
  67.     case 8:
  68.         $this->eocho = $this->eocho+1;
  69.         break;
  70.     case 9:
  71.         $this->enueve = $this->enueve+1;
  72.         break;
  73.     case 10:
  74.         $this->ediez = $this->ediez+1;
  75.         break;
  76.     case 11:
  77.         $this->eonce = $this->eonce+1;
  78.         break;
  79. }[B]//hasta 50[/B]
  80. }
  81. }
  82. }
  83.  
  84. //******************************************************
  85. public function EcreaTabla()
  86. {
  87.  
  88. $ekkk = array($this->euno, $this->edos, $this->etres, $this->ecuatro, $this->ecinco, $this->eseis, $this->esiete, $this->eocho, $this->enueve, $this->ediez, $this->eonce);// Esto hasta $cincuenta.
  89.  
  90. foreach ($ekkk as $ek1 => $ev1) {
  91.     foreach ($ekkk as $ek2 => $ev2) {
  92.         if ($ek1 != $ek2) {
  93.             if ($ev1 == $ev2) {
  94.                 unset($ekkk[$ek1]);
  95.                
  96.             }
  97.         }
  98.     }
  99. }
  100.  
  101. $this->epp = array_values($ekkk);
  102.  
  103. asort($this->epp);
  104.  
  105.  
  106. $this->eyy = array(1=>$this->euno, 2=>$this->edos, 3=>$this->etres, 4=>$this->ecuatro, 5=>$this->ecinco, 6=>$this->eseis, 7=>$this->esiete, 8=>$this->eocho, 9=>$this->enueve, 10=>$this->ediez, 11=>$this->eonce);// Esto hasta $cincuenta.
  107.  
  108. public function EtablaNormal()
  109. {
  110. echo "<table>";
  111.  
  112. echo "<tr>";
  113. foreach ($this->epp as $ok1 => $ov1) {
  114. echo "<td valign='bottom'>";
  115. echo "<table border='1'>";
  116. foreach ($this->eyy as $ok2 => $ov2){
  117. if ($ov1 == $ov2){
  118. echo "<tr>"."<td bgcolor='#FFFF00'>".$ok2."</td>"."</tr>";}}
  119. echo "<tr>"."<td bgcolor='#FF0000'>".$ov1."</td>"."</tr>";
  120. echo "</table>";
  121. echo "</td>";}
  122.  
  123. echo "<td valign='bottom'>&nbsp;</td>";
  124. echo "<td valign='bottom'>&nbsp;</td>";
  125. echo "<td valign='bottom'>&nbsp;</td>";
  126. echo "<td valign='bottom'>&nbsp;</td>";
  127. echo "<td valign='bottom'>&nbsp;</td>";
  128. echo "<td valign='bottom'>&nbsp;</td>";
  129. }En esta tabla con los foreach comparo las repeticiones con las veces que se repite cada número del último array().
  130. }

Última edición por alex760125; 16/10/2012 a las 05:26
  #9 (permalink)  
Antiguo 16/10/2012, 12:21
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema con incremento de variables.

Aún no he podido hacer una buena prueba de escritorio, pero en principio la duplicidad del conteo y el corrimiento apuntan a una doble invocación de la función que hace la verificación y crea la tabla.
Habría que hacer, como digo, una prueba manual, debuggeando el código para ver si hay algún a situación en la que el ciclo se vuelva a repetir.
Dudo que el problema esté en la base, porque la única forma en que MYSQL devolvería dos veces el contenido de la tabla sería usando UNION, y no es el caso. Tampoco puede ser que la consulta se ejecute dos veces porque no hay una llamada así y de todos modos la segunda destruiría el array resultado de la consulta anterior.
He visto algunas situaciones como esta, y generalmente se trata de un ciclo for que se repite.
Esta noche, en casa, veré con más detenimiento ese detalle.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 16/10/2012, 16:11
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Problema con incremento de variables.

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Aún no he podido hacer una buena prueba de escritorio, pero en principio la duplicidad del conteo y el corrimiento apuntan a una doble invocación de la función que hace la verificación y crea la tabla.
Habría que hacer, como digo, una prueba manual, debuggeando el código para ver si hay algún a situación en la que el ciclo se vuelva a repetir.
Dudo que el problema esté en la base, porque la única forma en que MYSQL devolvería dos veces el contenido de la tabla sería usando UNION, y no es el caso. Tampoco puede ser que la consulta se ejecute dos veces porque no hay una llamada así y de todos modos la segunda destruiría el array resultado de la consulta anterior.
He visto algunas situaciones como esta, y generalmente se trata de un ciclo for que se repite.
Esta noche, en casa, veré con más detenimiento ese detalle.
Ok, te agradezco me respondas, ya estaba pensando que me habías dejado tirado jaja.

Acá la llamada que hice.
$szs = new ContarEstrellas();
$szs->EConsulta();
$szs->Eincremento();
$szs->EcreaTabla();
$szs->EtablaNormal();

Última edición por alex760125; 16/10/2012 a las 16:19
  #11 (permalink)  
Antiguo 17/10/2012, 10:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema con incremento de variables.

Finalmente no encontré un defecto puntual que pueda generar el doble recorrido de la tabla, y como hacer una prueba de escritorio en ese contexto me resulta demasiado engorroso, opté por una aproximamción diferente.
La cosa es así:
Según entendí, lo que quieres obtener es la lista de numeros de lotería, discriminada por la cantidad de veces que se repite cada uno en una secuencia de cinco numeros de un sorteo, y a su vez encolumnados en base a la cantidad de repeticiones que se dan.
Para lograrlo cuentas la cantidad de veces en que un numero se repite y descartas las repeticiones para evitr la duplicidad de representaciones.
Si no me equivoco, esta consulta te devovlerá un array de dos campos, donde el primero es el numero que sale sorteado, y el segundo representa la cantidad de veces que se lo halló en la tabla, sin discriminar en qué posicion de las cinco salió.
Código MySQL:
Ver original
  1. SELECT numero, COUNT(*) repet
  2.     SELECT uno `numero`
  3.     FROM jugadas
  4.     UNION ALL
  5.     SELECT dos
  6.     FROM jugadas
  7.     UNION ALL
  8.     SELECT tres
  9.     FROM jugadas
  10.     UNION ALL
  11.     SELECT cuatro
  12.     FROM jugadas
  13.     UNION ALL
  14.     SELECT cinco
  15.     FROM jugadas
  16.     )t1
  17. GROUP BY numero
  18. ORDER BY repet ASC, numero DESC
Si este array te sirve, solamente tendrías que representarlo, generando una columna nueva por cada cambio de "repet" que haya.
Lamentablemente no hay forma de hacer tablas inversas en MySQL.

Fijate si te sirve, y qué habría que afinarle.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #12 (permalink)  
Antiguo 17/10/2012, 10:38
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Problema con incremento de variables.

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Finalmente no encontré un defecto puntual que pueda generar el doble recorrido de la tabla, y como hacer una prueba de escritorio en ese contexto me resulta demasiado engorroso, opté por una aproximamción diferente.
La cosa es así:
Según entendí, lo que quieres obtener es la lista de numeros de lotería, discriminada por la cantidad de veces que se repite cada uno en una secuencia de cinco numeros de un sorteo, y a su vez encolumnados en base a la cantidad de repeticiones que se dan.
Para lograrlo cuentas la cantidad de veces en que un numero se repite y descartas las repeticiones para evitr la duplicidad de representaciones.
Si no me equivoco, esta consulta te devovlerá un array de dos campos, donde el primero es el numero que sale sorteado, y el segundo representa la cantidad de veces que se lo halló en la tabla, sin discriminar en qué posicion de las cinco salió.
Código MySQL:
Ver original
  1. SELECT numero, COUNT(*) repet
  2.     SELECT uno `numero`
  3.     FROM jugadas
  4.     UNION ALL
  5.     SELECT dos
  6.     FROM jugadas
  7.     UNION ALL
  8.     SELECT tres
  9.     FROM jugadas
  10.     UNION ALL
  11.     SELECT cuatro
  12.     FROM jugadas
  13.     UNION ALL
  14.     SELECT cinco
  15.     FROM jugadas
  16.     )t1
  17. GROUP BY numero
  18. ORDER BY repet ASC, numero DESC
Si este array te sirve, solamente tendrías que representarlo, generando una columna nueva por cada cambio de "repet" que haya.
Lamentablemente no hay forma de hacer tablas inversas en MySQL.

Fijate si te sirve, y qué habría que afinarle.
Quiero comentarte algo del porqué sospeché de Mysql, yo con mi tabla llena hasta la fila 526 hice algunas pruebas, borraba etc.. En un momento después de 526 tenía 528, 530... Y las tablas php que me daban eran una locura nada que ver con la tabla Mysql, como si contara incluso las filas que había borrado... Borré esos registros, arreglé el autoincrement y se organizó perfecto, salvo las repeticiones dobles.

Por lo que entiendo de la solución que me das, debo hacer lo de arriba para cada número?
Qué significa t1?
  #13 (permalink)  
Antiguo 17/10/2012, 11:05
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema con incremento de variables.

Cita:
Por lo que entiendo de la solución que me das, debo hacer lo de arriba para cada número?
Da la impresión de que te complicas la vida en exceso...
Si tienes un sólo aray con toda la lista agrupada por numero (que ya no se repite) y ordenada por repetición , ¿no te parece que sería más sencillo hace un loop anidado tal que el loop exterior vaya generando la columna que representa las repeticiones, mientras que el interior simplemente pone en esa columna los valores que tuvieron la misma cantidad de repeticiones?
Al menos eso es lo que pareces describir en el post donde detallas:
Cita:
... las casillas en rojo son las veces que se repite cada número y para obtenerlo uso el foreach donde elimino los repetidos para que queden las repeticiones. En las casillas amarillas van los números que se repiten lo que diga la roja. Después uso un código para lograr la tabla, abajo voy a poner el de la tabla sin verde, que es la que obtengo después de "INSERT INTO jugadas (uno, dos, tres, cuatro, cinco) values ('".$no."', '".$os."', '".$es."', '".$ro."', '".$co."')
En cualqueir caso, esa consulta elimina la necesidad de quitar las repeticiones e incluso la de contar las cantidades de repeticiones del mismo numero. Te da la información terminad, solo que en una única tabla.
Cita:
Qué significa t1?
Es un alias para la tabla derivada.
Por regla general, toda tabla derivada (una subconsulta en el FROM) tiene obligatoriamente que llevar un alias.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #14 (permalink)  
Antiguo 17/10/2012, 11:19
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Problema con incremento de variables.

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Da la impresión de que te complicas la vida en exceso...
Si tienes un sólo aray con toda la lista agrupada por numero (que ya no se repite) y ordenada por repetición , ¿no te parece que sería más sencillo hace un loop anidado tal que el loop exterior vaya generando la columna que representa las repeticiones, mientras que el interior simplemente pone en esa columna los valores que tuvieron la misma cantidad de repeticiones?
Al menos eso es lo que pareces describir en el post donde detallas:
En cualqueir caso, esa consulta elimina la necesidad de quitar las repeticiones e incluso la de contar las cantidades de repeticiones del mismo numero. Te da la información terminad, solo que en una única tabla.
Es un alias para la tabla derivada.
Por regla general, toda tabla derivada (una subconsulta en el FROM) tiene obligatoriamente que llevar un alias.
Bueno graciasss por todo, voy a ponerle cabeza al tema cuando tenga tiempo, ya te contaré..

Etiquetas: incremento, mysql, tabla, variables
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 21:26.