Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]złe przypisywanie punktów
damian238
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 3.11.2013

Ostrzeżenie: (0%)
-----


cześć,
mam coś takiego:
  1. $players_list = query('SELECT players.*, zawody.id as conID FROM zawody
  2. INNER JOIN players on players.id=user_id ORDER BY bieg DESC LIMIT 30', null, 'fetch_all');
  3.  
  4. $points = 50;
  5. foreach($players_list['fetch'] as $player)
  6. {
  7. query('UPDATE zawody SET punkty='.$points.' WHERE id=?', array($player['conID']));
  8.  
  9. $points--;
  10. }

a gdy sb to wykonam to mi do każdego gracza przypisuje jakąś liczbę punktów z tą różnicą tylko,
że nie w kolejności od najlepszego do najgorszego, a jakoś tak chaotycznie, bez żadnej reguły
Proszę o pomoc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
damian238
post
Post #2





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 3.11.2013

Ostrzeżenie: (0%)
-----


poprawiłem, ale nadal coś jest źle
zacznę jeszcze raz pisać wszystko teraz po edycji
1.gdy mam:
  1. <?php
  2. include('../includes/config.php');
  3.  
  4. $roznica = 5407;
  5.  
  6. $players_list = query('SELECT players.*, zawody.id as conID FROM zawody
  7. INNER JOIN players on players.id=user_id ORDER BY bieg', null, 'fetch_all');
  8. foreach($players_list['fetch'] as $player)
  9. {
  10. $n++;
  11. $bieg = biegnij($player['skill_szybkosc'], $player['skill_technika'], $player['skill_kondycja']);
  12. query('UPDATE zawody SET bieg='.$roznica.'-'.$bieg.' WHERE id=?', array($player['conID']));
  13. }
  14.  
  15. $players_list = query('SELECT players.*, zawody.id as conID FROM zawody
  16. INNER JOIN players on players.id=user_id
  17. ORDER BY bieg', null, 'fetch_all');
  18.  
  19. $points = 50;
  20. foreach($players_list['fetch'] as $player)
  21. {
  22. echo 'Punktów: '.$points.' - Dla: '.$player['conID'].' użytkownika';
  23. echo '<br />' ;
  24.  
  25. $points--;}
  26. ?>

to mi się wyświetla:
  1. 0
  2. 2680.2
  3. 0
  4. 2739.76
  5. 0
  6. 2709.98
  7. 0
  8. 2739.76
  9. 0
  10. 2799.32
  11. Punktów: 50 - Dla: 1 użytkownika
  12. Punktów: 49 - Dla: 4 użytkownika
  13. Punktów: 48 - Dla: 2 użytkownika
  14. Punktów: 47 - Dla: 5 użytkownika
  15. Punktów: 46 - Dla: 3 użytkownika


2.a jak mam:
  1. <?php
  2. include('../includes/config.php');
  3.  
  4. $roznica = 5407;
  5.  
  6. $players_list = query('SELECT players.*, zawody.id as conID FROM zawody
  7. INNER JOIN players on players.id=user_id ORDER BY bieg', null, 'fetch_all');
  8. foreach($players_list['fetch'] as $player)
  9. {
  10. $n++;
  11. $bieg = biegnij($player['skill_szybkosc'], $player['skill_technika'], $player['skill_kondycja']);
  12. query('UPDATE zawody SET bieg='.$roznica.'-'.$bieg.' WHERE id=?', array($player['conID']));
  13. }
  14.  
  15. $players_list = query('SELECT players.*, zawody.id as conID FROM zawody
  16. INNER JOIN players on players.id=user_id ORDER BY bieg', null, 'fetch_all');
  17.  
  18. $points = 50;
  19. foreach($players_list['fetch'] as $player)
  20. {
  21. query('UPDATE zawody SET punkty='.$points.' WHERE id=?', array($player['conID']));
  22.  
  23. $points--;
  24. ?>

to w bazie się wyświetla:
  1. id user_id time bieg punkty
  2. 1 4 1386170055 2548.12 50
  3. 2 5 1386170085 2488.56 48
  4. 3 6 1386170111 2726.80 46
  5. 4 7 1386170140 2667.24 49
  6. 5 8 1386170179 2577.90 47


jak w drugim przykładzie tego crona wykonam nawet 100 razy to w kolumnie bieg wartość zawsze się zmienia na inną, ale punkty zawsze w każdym wierszu zostają w takiej samej ilości,
i podobnie jest w pierwszym przypadku, bo również zawsze zostaje taka sama ilość punktów dla tego msamego gracza

Ten post edytował damian238 4.12.2013, 17:56:40
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 19:56