Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: if while ?
Forum PHP.pl > Forum > Bazy danych
homer1981
Mam taką baze danych :
kierowca | GP1miejsce | GP2miejsce | GP3miejsce .....
Nazwisko1 | 02 | 05 | 01 .....
Nazwisko2 | 01 | 03 | 02 .....
Nazwisko3 | 12 | 01 | 03 .....

Chciałbym zbobić takie coś żeby w zależnosci od miejsce przypisywało mi punkty
tzn
dla miejsca 01 =10 punktów, dla 02 =8 , dla 03 = 6 , dla 04 = 4 dla miejsc powyżej 8 miejsca po 0 punktów i dodatkowo zliczało liczbę punktów dla danego zawodnika (Nazwisko1)

Próbowałem wielu sposobów ,ale już sie w tym pogubiłem :/


Mój skrypt jest już dość nieczytelny ale może ktoś coś pomoże :


  1. <?php
  2. $result = mysql_query($query) or die("błąd zapytania");
  3. while($row = mysql_fetch_array($result)){
  4.  
  5. $id_kierowcy=$row['id_kierowcy'];
  6. $kierowca_i=$row['kierowca_i'];
  7. $kierowca_n=$row['kierowca_n'];
  8. $obrazek=$row['obrazek'];
  9. $kraj=$row['kraj'];
  10. $team=$row['team'];
  11.  
  12. $liczba=$i;
  13. for ($i=0; $i<3;$i++){
  14. //$i='1';
  15. //$j=1;
  16. //$GP1miejsce =$row['GP1miejsce'];
  17. $GP.$j.$miejsce=$row['GP'.$i.'miejsce'];
  18. //$j='2';
  19. //$GP2miejsce=$row['GP'.$j.'miejsce'];
  20.  
  21. //$k='1';
  22. //$Grand=$row['GP'.$k.'miejsce'];
  23.  
  24. //$x=1;
  25. //while($x <= 22){
  26. //echo $GP1miejsce;
  27. //echo $x.$GP1miejsce."<br>";
  28. //$x++;
  29.  
  30. //$suma=$GP1miejsce + $GP1miejsce;
  31.  
  32.  
  33.  
  34. //$suma=$GP1miejsce; <-nie pokazuje sie nic poza nazwiskami kierowców
  35. }
  36. //echo $suma.$kierowca_n.'<br>'.
  37. echo '<br>'.$i;
  38. ?>
ayeo
Witam!

Proszę dodać znacznik BBcode.

// byłeś szybszy winksmiley.jpg

Pozdrawiam!
kefirek
Ja bym zrobiłem w bazie danych utworzył dodatkową kulumnę z pktami i przy dodawaniu sprawdzał miejsce a potem dodawał do tabeli zmieną pkt


  1. <?php
  2. if(01) {
  3. $pkt=10;}
  4. elseif (02)
  5. {$pkt=8;
  6. } elseif (03)
  7. {$pkt=6;} elseif(04)
  8. {$pkt=4;}else {$pkt=0;}
  9. ?>
zegarek84
Cytat(homer1981 @ 15.11.2008, 16:18:06 ) *
Mam taką baze danych :
kierowca | GP1miejsce | GP2miejsce | GP3miejsce .....
Nazwisko1 | 02 | 05 | 01 .....
Nazwisko2 | 01 | 03 | 02 .....
Nazwisko3 | 12 | 01 | 03 .....

Chciałbym zbobić takie coś żeby w zależnosci od miejsce przypisywało mi punkty
tzn
dla miejsca 01 =10 punktów, dla 02 =8 , dla 03 = 6 , dla 04 = 4 dla miejsc powyżej 8 miejsca po 0 punktów i dodatkowo zliczało liczbę punktów dla danego zawodnika (Nazwisko1)

dla takiej tabelki:

zapytanie:
  1. SELECT kierowca, max(12-GP1*2,0) AS pkt1, max(12-GP2*2,0) AS pkt2, max(12-GP3*2,0) AS pkt3 FROM pkt

zwróci wyniki:

akurat tak się składa że do Twojej punktacji pasuje wzór 12-miejsce*2... - zsumować pkt już nie problem - ale jeśli chcesz gotowca to te wyniki wystarczy umieścić w podzapytaniu i można też zsumować wszystko w zapytaniu:
  1. SELECT kierowca, pkt1, pkt2, pkt3, (pkt1+pkt2+pkt3) AS suma FROM (SELECT kierowca, max(12-GP1*2,0) AS pkt1, max(12-GP2*2,0) AS pkt2, max(12-GP3*2,0) AS pkt3 FROM pkt)

co da wyniki:


pozdro i żeby na zaś nie przyklepywać tabelki to jest taki dodatek do Mozilli jak sqlite manager - mógłbys fragment bazy zamieszczać w załączniku w pliku sqlite....

co do poćwiczenia operacji matematycznych na danych i ich obróbce to zapraszam na Excelforum.pl - inaczej się pisze i liczy w excelu ale tam możesz znaleść wiele nietypowych rozwiązań matematycznych - włącznie z aktywnymi filtrami opartymi o formułki, o formułki a nie pisane w makrach językiem VBA - choć i takie rozwiązania tam też są
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.