Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [wolontariat]TOP 10
czaczawik
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 15.08.2009

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


Staram sie zrobic TOP 10 graczy w pewna gre. I ugrzęzłem. ma taki kod:

  1. <?php
  2. $user = 'xxx';
  3. $pass = 'yyy';
  4. $host = 'zzz';
  5. $dbname = 'Game3G';
  6. $dbh = new PDO ("dblib:host=$host;dbname=$dbname", "$user", "$pass");
  7. $n=1;
  8.  
  9. echo '<br />';
  10. echo '<table width=190 border=0 >
  11. <tr><td style="color:red" colspan=3 align=center><b>TOP 10 - Warrior</b></td>
  12. <tr><td>&nbsp;</td><td align=center>Nick</td><td align=center>Poziom</td>';
  13.  
  14. foreach ($dbh->query('SELECT FLD_LEVEL, FLD_jOB, FLD_CHARACTER from TBL_CHARACTER where FLD_LEVEL < 69 and FLD_jOB = 0 order by FLD_LEVEL desc') as $row)
  15. {
  16. echo '<tr>
  17. <td style="color:red">'.$n.'</td><td style="font-size:12px;"><b>'.$row['FLD_CHARACTER'].'</b></td><td align=center>'.$row['FLD_LEVEL'].'</td>
  18. </tr>
  19. ';
  20. $n++;
  21. if($n>=11) break;
  22. }
  23. echo '</table>';
  24. $dbh = null;
  25. ?>

podglad:
http://www.andriskos.pl/bazaOK.php

ale podane lewele graczy sa niezbyt dokładne bo bez procentu.Chciałbym tak np: '54 i 22%' ale co ja mogę nie znając PHP
Niezbędne dane znajdują się w tabeli TBL_ABILITY w kolumnach FLD_EXP oraz FLD_MAXEXP. Procent o który mi chodzi wyjdzie z działania FLD_EXP : FLD_MAXEXP * 100. Ale jak to połączyć z w/w działającym skryptem aby wyświetlało szczegółowy lvl to nie mam pojęcia. Po raz kolejny liczę na pomoc
Powód edycji: [Spawnm]:
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Ulysess
post
Post #2





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


hmm żeby obliczyć procenty potrzebujesz mieć ile potrzeba na każdy level
do obliczenia procentu zrobił bym tak:
przypisal do tablicy wartości ile expa trzeba na jaki level a % obliczył bym:

  1. $sto_procent = $table_exp[$dane_panel['level']-1] - $table_exp[$dane_panel['level']-2];
  2. $moj_exp = $dane_panel['experience'] - $table_exp[$dane_panel['level']-2];
  3. $procent = (($moj_exp*100)/$sto_procent);

gdzie $dane_panel['level'] postaci której właśnie obliczamy a tabela_exp to tablica w której znajduje się potrzebne doświadczenie na każdy level
Go to the top of the page
+Quote Post
czaczawik
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 15.08.2009

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


ja wiedziałem że to się tak skończy smile.gif
Nie napisałem że moja znajomość php / sql jest na poziomie 0,5 %
Proszę zatem aby zmodyfikować skrypt który podałem na początku aby wyświetlał dokładny level postaci.
Wiem wiem, zapytacie 'może jeszcze frytki do tego?' Ale ja tak łaaaadnie proszę smile.gif


@UP
W w kolumnach FLD_EXP oraz FLD_MAXEXP jest właśnie zapisane to o czym mówisz czyli
FLD_EXP - obecny poziom gracza np 100
FLD_MAXEXP - poziom przy którym nastąpi przejście na następny lvl, np 300


czyli:
100 / 300 * 100 = 33,3
a to oznacza że jakiś tam user ma np lvl 55 i 33,3%
Ale jak to sklecić żeby działało? Proszę o gotowca.
Go to the top of the page
+Quote Post
Ulysess
post
Post #4





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


ja nie pomogę bo ten kod który podałeś jest dla mnie dziwny/trudny..

zapraszam do nauki php/mysql ;p

jedynie mogę ci pomóc opisując jak to zrobić :
1 robisz zapytanie które pobierze te dane które podałeś np:
  1. $zapytanie['tresc'] = "SELECT `FLD_LEVEL`, `FLD_jOB`,`FLD_CHARACTER` FROM `TBL_CHARACTER` WHERE `FLD_LEVEL` < 69 AND `FLD_jOB` = 0 ORDER BY `FLD_LEVEL` DESC";
  2. $wykonano_zapytanie['tresc'] = mysql_query($zapytanie['tresc']) or die(mysql_error());
  3.  
  4. while($dane = mysql_fetch_assoc($wykonano_zapytanie['tresc']))
  5. {
  6. // działanie będzie takie że zacznie pobierać rekordy które spełniają Twój warunek , każde wywołanie pętli while spowoduje pobranie nowych danych.
  7. // chyba nie muszę mówić że w tym miejscu układasz proporcje która będzie to obliczać , podpowiem tylko że dane której pobierasz będą w postaci np $dane['FLD_LEVEL']
  8. // jeśli chcesz sobie wyświetlić to co pobiera może zrobić np echo $dane['FLD_LEVEL']; lub print_r($dane); różnica pomiędzy tymi 2 przykładami jest taka że 1 wyświetli tylko //wartości z pola(bazy danych) o nazwie FLD_LEVEL a 2 wyświetli wszystkie w postaci tablicy
  9. // DZIAŁAJ !! :)
  10. }


Ten post edytował Ulysess 17.10.2010, 13:30:22
Go to the top of the page
+Quote Post
czaczawik
post
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 15.08.2009

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


Cytat(Ulysess @ 17.10.2010, 14:29:47 ) *
zapraszam do nauki php/mysql ;



Nie czytałeś, ja nie mam potrzeby uczenia się php / sql . Tym bardziej nie rozumiem Twego postu.
Potrzebuje tylko tego małego skrypciku..... sad.gif HELP

@DOWN
Typowy Polak, pokaż ile masz w portfelu a może Ci pomogę.

Ten post edytował czaczawik 17.10.2010, 16:55:43
Go to the top of the page
+Quote Post
kapuch
post
Post #6





Grupa: Zarejestrowani
Postów: 389
Pomógł: 69
Dołączył: 26.04.2010
Skąd: Łódź

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


Cytat(czaczawik @ 17.10.2010, 15:19:44 ) *
Nie czytałeś, ja nie mam potrzeby uczenia się php / sql . Tym bardziej nie rozumiem Twego postu.
Potrzebuje tylko tego małego skrypciku..... sad.gif HELP

Ale to forum jest dla ludzi, ktorzy sie ucza i potrzebuja pomocy.
Jesli zas nie masz zamiaru sie uczyc, a potrzebujesz gotowca, to odpowiednim dzialem dla ciebie, jest dzial GIELDA OFERT.


--------------------
Nie chce "Pomógł", aktualna ilość (69) w pełni mnie satysfakcjonuje :)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 13:17