Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Liczenie elementów w tabeli MySQL z kilkoma warunkami..
Forum PHP.pl > Forum > Przedszkole
Giluś
Hej, posiadam tabelę o nazwie: "Ulepszenia" w której zapisuję aktualne ulepszenia które dokonuję użytkownik i zastanawiam się jak policzyć tylko wybrane aktualnego ulepszenia dla danego użytkownika, zrobiłem sobie taki kod SQL, ale coś nie działa:

  1. SELECT
  2. count(*)
  3. AS
  4. total
  5. FROM
  6. ulepszenia
  7. WHERE
  8. id_us = '".$users['id']."'
  9. AND
  10. co = 'fabryka'
  11. AND
  12. co = 'u1'
  13. AND
  14. co = 'u2'
  15. AND
  16. co = 'u3'
  17. AND
  18. co = 'u4'
  19. AND
  20. co = 'u5'
  21. AND
  22. co = 'u6'
  23. AND
  24. co = 'u7'
  25. AND
  26. co = 'u8'
  27. AND
  28. co = 'u9'
  29. AND
  30. co = 'u10'
  31. AND
  32. co = 'u11'
  33. AND
  34. co = 'u12'
  35. AND
  36. co = 'symulator'
  37. AND
  38. co = 'tunel_aero'


Tabela składa się z:
id
id_us - id użytkownika
co - czyli co ulepsza
numer - takie zabezpieczenie, zhaszowany nick + id..

I przykładowo mamy taki zrzut SQL:

  1. INSERT INTO `ulepszenia` (`id`, `id_us`, `numer`, `co`) VALUES
  2. (75, 95, 'fa8efa86562', 'tunel_aero'),
  3. (76, 95, 'fa8efa86562', 'fabryka'),
  4. (77, 95, 'fa8efa86562', 'u11'),
  5. (78, 95, 'fa8efa86562', 'u7'),
  6. (88, 95, 'fa8efa86562', 'fabryka');
  7. (89, 95, 'fa8efa86562', 'oleole');


To chciałbym otrzymać wynik: "5", bo zliczamy jedynie wiersze gdzie co jest równe:
co = 'fabryka' lub co = 'u1' lub co = 'u2' lub co = 'u3' lub co = 'u4' lub co = 'u5' lub co = 'u6' lub co = 'u7' lub co = 'u8' lub co = 'u9' lub co = 'u10' lub co = 'u11' lub co = 'u12' lub co = 'symulator' lub co = 'tunel_aero'

Wiec w tym przypadku co = 'oleole' nie jest równe z żadnych z powyższych wiec nie jest zliczane..
Próbowałem dawać zamiast AND to OR ale również nie działało.., gdy wywalam całkowicie warunek (po za wskazaniem użytkownika) to działa, lecz nie coś takiego mi chodzi..


Może macie jakieś pomysły, jak to zrobić ?
Mogę użyć do tego PHP.


Pozdrawiam i z góry bardzo dziękuje smile.gif smile.gif
borabora
  1. SELECT count(*) AS total FROM `ulepszenia` WHERE id_us =95 AND (co = 'fabryka' OR co = 'u1' OR
  2. co = 'u2' OR co = 'u3' OR co = 'u4' OR co = 'u5' OR co = 'u6' OR co = 'u7' OR co = 'u8' OR co = 'u9' OR co = 'u10' OR co = 'u11' OR co = 'u12' OR co = 'symulator' OR co = 'tunel_aero' )
Giluś
Faktycznie...
Dzięki bardzo smile.gif
Pyton_000
lub
  1. SELECT count(*) AS total FROM `ulepszenia` WHERE id_us =95 AND co IN('fabryka', 'u1', 'u2', 'u3'... itd)
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.