Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Dublowanie zapytań
Forum PHP.pl > Forum > Przedszkole
miccom
Dzień dobry.

Mam w mysql tabelę `items` z rekordami: userID, itemID,active.

Chcę wyciągnąć ilość rekordów przy założeniu że:
userID=x i itemID=4 i active=1
userID=x i itemID=4 i active=0
userID=x i itemID=5 i active=1 itd.

Nie wyobrażam sobie aby robić tak:

  1. $wynikItem11 = $baza -> query('SELECT * FROM `items` WHERE `userID`='.getPost('id').' AND `itemID`=1 AND `active`= 0');
  2. $daneItem11 = $wynikItem11-> fetch_assoc();
  3. $wynikItem12 = $baza -> query('SELECT * FROM `items` WHERE `userID`='.getPost('id').' AND `itemID`=1 AND `active`!= 0');
  4. $daneItem12 = $wynikItem12 -> fetch_assoc();
  5. $wynikItem21 = $baza -> query('SELECT * FROM `items` WHERE `userID`='.getPost('id').' AND `itemID`=2 AND `active`= 0');
  6. $daneItem21 = $wynikItem21 -> fetch_assoc();
  7. $wynikItem22 = $baza -> query('SELECT * FROM `items` WHERE `userID`='.getPost('id').' AND `itemID`=2 AND `active`!= 0');
  8. $daneItem22 = $wynikItem22 -> fetch_assoc();


Proszę o nakierowanie mnie, w jaki sposób skonstruować zapytanie aby ogarnąć taki zestaw zapytań...
Z góry dziękuję za pomoc smile.gif
nospor
a czemu poprostu nie zrobisz jednego zapytania
SELECT * FROM `items`
i nie pogrupujesz sobie danych w php tak jak chcesz?
Przeciez teraz i tak pobierasz wszystkie dane ino ze w oddzielnych zapytaniach. zero optymalnosci
miccom
smile.gif
Napisałem że nie wyobrażam sobie tak zrobić smile.gif

Natomiast "pogrupować" sobie w php? Na to nie mam pomysłu/wiedzy...
Jak najlepiej to zrobić? W Pętli czy może jeszcze inaczej?
nospor
http://nospor.pl/grupowanie-wynikow.html
Nie jest to dokladnie co nalezy zrobic u Ciebie, ale pokazuje idee grupowania danych w php
miccom
Ok, przygotowałem sobie taką tablicę

  1. (
  2. [wolne] => Array
  3. (
  4. [0] => 1
  5. [1] => 1
  6. [2] => 5
  7. )
  8.  
  9. [zajete] => Array
  10. (
  11. [0] => 1
  12. [1] => 3
  13. [2] => 3
  14. )
  15.  
  16. )


Jak w takim przypadku policzyć przedmioty 'zajete' o 'rodzajPrzedmiotu'=3

Hmm, wykombinowałem coś takiego smile.gif

  1. preg_match_all("/\"3\"/", serialize($dane['wolne']), $wynik);
  2. $licznik = count($wynik[0]);
  3. echo $licznik;


i działa.
Jak myślicie, może być czy to na "okrętkę" wink.gif
olszam
dajesz tablicę w pętli foreach i robisz zwykłego ifa który sprawdza czy posiada daną wartość, jak tak to robisz coś na bazie $i = $i+1.
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.