Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Najmniejsza wolna wartość
foxbond
post
Post #1





Grupa: Zarejestrowani
Postów: 162
Pomógł: 12
Dołączył: 20.12.2009
Skąd: Siedlce

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


Pytanie jest z tego tematu, jednak szukam jego rozwiązania po stronie php. (może poprzez MySQL nie da się jego rozwiązać?)

Dane pobrane do zmiennej $all:
(IMG:http://borderless-engine.tk/mediawiki/images/e/ea/Db_toforum.jpg)

Chcę się dowiedzieć jaka jest najmniejsza wolna wartość playerItemPlace dla danego playerItemBag

Czyli dla playerItemBag=1 jest to 2, dla playerItemBag=2 i playerItemBag=3 jest to 0


Mam taki kod:
  1. $all = $this->db->fetch_assoc("SELECT * FROM {[table]} WHERE playerId=1 AND playerItemBag=1", "playerItems");
  2. $min = 0;
  3. $ile = 0;
  4. $x = true;
  5. $countall = count($all);
  6. while ($x){
  7. $x=false;
  8. for ($i=0;$countall>$i;$i++){
  9. if ($all[$i]['playerItemPlace']<=$min){
  10. $min = $all[$i]['playerItemPlace']+1;
  11. $x=true;
  12. }
  13. }
  14. $ile++;
  15. if ($ile >48){
  16. $x=false;
  17. }
  18. }
  19. var_dump($min, $ile);


Teoretycznie działa, jednak zawsze wykonuje 48 razy while, a w nim do 48 razy for.

Moje pytanie brzmi jak uprościć ten kod?
Jest on częścią większej ilości kodu wykonywanej, gdy gracz (min. 100 jednocześnie) przekłada przedmioty w ekwipunku. Liczy się każda zaoszczędzona milisekunda.
Go to the top of the page
+Quote Post

Posty w temacie


Closed TopicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.09.2025 - 17:29