Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/09/2011, 11:35
skirlappa
 
Fecha de Ingreso: junio-2005
Mensajes: 107
Antigüedad: 18 años, 10 meses
Puntos: 0
Problema al ejecutar un while y un if

Tengo un problemilla y es que cuando ejecuto el ultimo while al hacer if no me ejecuta la consulta nada mas que una vez, la última os muestro el código


Código PHP:
Ver original
  1. <?php
  2. /**
  3.  * @author SyToo22
  4.  * @copyright 2011
  5.  */
  6.  //Conectamos con la bases de datos
  7. $connect=mysql_connect("localhost","","");
  8. $selectDb=mysql_select_db("test",$connect);
  9. $total=0;
  10. //Comprobamos el numero de apustas que han acertado y sumamos sus creditos
  11. $query=mysql_query("SELECT * FROM resmejor WHERE idequipo=".$_POST["name"]."");
  12. while($row=mysql_fetch_array($query))
  13. {
  14.     $total+=$row["tapuesta"];
  15. }
  16. //hayamos el el premio por credito jugado
  17. $query1=mysql_query("SELECT * FROM bote WHERE id=1");
  18. while($row1=mysql_fetch_array($query1))
  19. {
  20.     $premio=floor($row1["bote"]/$total);    
  21. }
  22. //multiplicamos el premio por los premios jugados y le añadimos los puntos a los usuarios premiados
  23. //$query2=mysql_query("SELECT usuarios.ID, usuarios.point, usuarios.username, resmejor.idequipo, resmejor.iduser, resmejor.tapuesta FROM usuarios LEFT JOIN resmejor ON resmejor.idequipo=".$_POST["name"]."");
  24. $query2=mysql_query("SELECT * FROM resmejor LEFT JOIN usuarios ON resmejor.iduser=usuarios.id");
  25. while($row2=mysql_fetch_array($query2))
  26. {
  27. if($_POST["name"]==$row2["idequipo"])
  28. {
  29.    //ESTAS LÍNEAS DE CÓDIGO NO VAN--SOLO SUMA AL FINAL
  30.    //Compruebo que el if se ejecute tantas vecex como coincidencias ademas muestro el iid del premiado como  los puntos que tiene
  31.     echo "Aqui hay premios------el id del premiado es....".$row2["iduser"]."------------".$row2["point"]."<br>";
  32.     $win=$premio*$row2["tapuesta"];
  33.     $suma=$win+$row2["point"];
  34.     $nomeva=mysql_query("UPDATE usuarios SET point='$suma' WHERE ID=".$row2["iduser"]."");
  35.     echo $win."........".$row2["point"]."--------------".$suma."<br>";
  36. }
  37. }

Como os muestro en pantalla imprime esto, esta bien ejecuta bien el bucle porque en la base datos solo hay tres conicidencias, si las modifico a una o a dos muestra bien que solo hay un premio o dos, pero a la hora de hacer el update solo me lo hace una vez, la última.

IMPRESION DE PANTALLA
Código:
Aqui hay premios------el id del premiado es....1------------2
1........2--------------3
Aqui hay premios------el id del premiado es....1------------2
2........2--------------4
Aqui hay premios------el id del premiado es....1------------2
2........2--------------4
Como podeis ver el resultado de este bucle tendría que ser

1+2=3
2+3=5
2+5=7

pero esto no es asi porque siempre mantiene el valor point en la base de datos fija hasta el final que es cuando la modifica, si volvemos a ejecutar el codigo imprimira esto:

Código:
Aqui hay premios------el id del premiado es....1------------4
1........4--------------5
Aqui hay premios------el id del premiado es....1------------4
2........4--------------6
Aqui hay premios------el id del premiado es....1------------4
2........4--------------6
Como podeis ver anteriormente sumo el ultimo que era dos.

¿Qué estoy haciendo mal¿