Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][Cron] Na wszystich rekordach w kolumnie
Forum PHP.pl > Forum > Przedszkole
tomekw7
Witam,
Chciałem dodać ten skrypt do crona żeby wykonywał mi się co określony czas na wszystkich rekordach w kolumnie "pojedynek", ale on wykonuje mi skrypt tylko dla pierwszego rekordu. Ktoś wie o co może chodzić?
Oto skrypt:

  1. <?php
  2. include "baza.php";
  3. $zapbak=mysql_query("SELECT gracz1 FROM `pojedynek`");
  4.  
  5. $i=0;
  6. while($row=mysql_fetch_assoc($zapbak))
  7. {
  8. $wyniki[$i]=$row;
  9. $i++;
  10. }
  11.  
  12. $gracz1=$wyniki[0]['gracz1'];
  13.  
  14. $zawodnik1 = mysql_fetch_assoc(mysql_query("SELECT user, lvl,... FROM user WHERE user='$gracz1'"));
  15.  
  16. include "baza.php";
  17. $zapbak2=mysql_query("SELECT gracz2 FROM `pojedynek`");
  18.  
  19. $i=0;
  20. while($row=mysql_fetch_assoc($zapbak2))
  21. {
  22. $wyniki[$i]=$row;
  23. $i++;
  24. }
  25.  
  26. $gracz2=$wyniki[0]['gracz2'];
  27.  
  28. $zawodnik2 = mysql_fetch_assoc(mysql_query("SELECT user, lvl,... FROM user WHERE user='$gracz2'"));
  29.  
  30. {
  31. $szanse = ($zawodnik1['vmax'] + $zawodnik1['v100']);
  32. $szanse2 = ($zawodnik2['vmax'] + $zawodnik2['v100']);
  33. if($szanse > $szanse2)
  34. {
  35. $arespekt = $zawodnik2['respekt'] * 0.1;
  36. $brespekt = $zawodnik1['respekt'] + $arespekt;
  37. $nkasa = $zawodnik1['kasa'] + 200;
  38. $wygral = $zawodnik1['wygral'] + 1;
  39. $przegral = $zawodnik2['przegral'] + 1;
  40.  
  41. mysql_query("UPDATE user SET respekt='$brespekt', wygral='$wygral',kasa='$nkasa' WHERE user='$gracz1'"); //wygrał pierwszy gracz, zysk pierwszego
  42. $urespekt2 = $zawodnik2['respekt'] - $arespekt;
  43. mysql_query("UPDATE user SET respekt='$urespekt2', przegral='$przegral' WHERE user='$gracz2' "); //wygrał pierwszy gracz, straty drugiego
  44. }
  45.  
  46. else
  47. {
  48. $drespekt = $zawodnik1['respekt'] * 0.1;
  49. $crespekt = $zawodnik2['respekt'] + $drespekt;
  50. $dkasa = $zawodnik2['kasa'] + 200;
  51. $przegral1 = $zawodnik1['przegral'] + 1;
  52. $wygral1 = $zawodnik2['wygral'] + 1;
  53.  
  54. $erespekt = $zawodnik1['respekt'] - $drespekt;
  55. mysql_query("UPDATE user SET respekt='$erespekt', przegral='$przegral1' WHERE user='$gracz1'");
  56.  
  57. mysql_query("UPDATE user SET respekt='$crespekt', wygral='$wygral1', ost_wyzwany='$czas', kasa='$dkasa' WHERE user='$gracz2' ");
  58. }
  59. }
  60. ?>
nospor
$gracz1=$wyniki[0]['gracz1'];
Przecież wykonujesz operacje tylko dla pierwszego rekordu to nic dziwnego, że tylko jeden ci przetwarza
tomekw7
Cytat(nospor @ 3.08.2011, 17:26:21 ) *
$gracz1=$wyniki[0]['gracz1'];
Przecież wykonujesz operacje tylko dla pierwszego rekordu to nic dziwnego, że tylko jeden ci przetwarza

to gdzie co mam zmienić?
jestem początkujący, ten kawałek kodu akurat skopiowałem z innego skryptu.
bastard13
Pętla:
http://www.php.net/manual/en/control-structures.for.php lub
http://www.php.net/manual/en/control-structures.foreach.php lub
http://www.php.net/manual/en/control-structures.while.php
żeby przejść przez wszystkie rekordy.

http://php.net/manual/en/mysqli.multi-query.php
po to, żeby nie dobijać serwera setkami update, tylko spakować to i odpalić raz
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.