Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Liczenie elementów w tabeli MySQL z kilkoma warunkami..
Giluś
post
Post #1





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
borabora
post
Post #2





Grupa: Zarejestrowani
Postów: 116
Pomógł: 33
Dołączył: 8.09.2014

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


  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' )
Go to the top of the page
+Quote Post
Giluś
post
Post #3





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


Faktycznie...
Dzięki bardzo smile.gif
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


lub
  1. SELECT count(*) AS total FROM `ulepszenia` WHERE id_us =95 AND co IN('fabryka', 'u1', 'u2', 'u3'... itd)
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: 22.08.2025 - 06:38