Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pomoc w utworzeniu zapytania
foxbond
post
Post #1





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

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


Kod
|------
|playerItemId|itemId|playerId|playerItemBag|playerItemPlace|playerItemStack
|------
|1|1|1|1|16|1
|2|2|1|1|35|1
|3|3|1|1|32|1
|4|2|1|2|1|1
|5|3|1|3|9|1
|6|1|1|2|8|1
|7|1|1|2|14|1
|8|3|1|1|1|1
|9|3|1|2|10|1
|11|1|1|1|9|1
|12|1|1|1|0|1
|13|1|1|1|4|1

Zakres playerItemPlace 0-47


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





Tu jest obrazek bo słabo widac na tekstowym przykładzie:
(IMG:http://borderless-engine.tk/mediawiki/images/e/ea/Db_toforum.jpg)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Qualt
post
Post #2





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 17.02.2013

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


Jak na moje oko, to nie da rady sprawdzić, które miejsce jest wolne, skoro nie istnieje w bazie taki zapis. Nie lepiej byłoby dla każdego Baga dodać wszystkie miejsca i później sprawdzać gdzie jest pusto?
Żeby sprawdzić w bazie czy coś jest puste, dany rekord musi istnieć. Możesz też ewentualnie połączyć to z php.
  1. SELECT playerItemPlace, playerItem FROM ... WHERE playerItemBag = ... ORDER BY playerItemPlace;

Przetwarzasz sobie dane, żeby mieć tablicę w postaci ( playerItemPlace => playerItemStack lub po prostu pusta wartość )
  1. if(!empty($results)){
  2. $i=0;
  3. while(isset($results[$i]) AND $i <= 47){
  4. echo $i;
  5. ++$i;
  6. }
  7. if($i==48)
  8. echo 'wszystkie zajete';
  9. else
  10. echo 'pierwszy pusty: '.$i;
  11. }
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: 11.10.2025 - 00:56