Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL]Zapytanie do bazy MySQL, jak je ułożyć?
Forum PHP.pl > Forum > Przedszkole
kukix
Witam.

Potrzebuje wyświetlić z bazy danych newsy, które są wśród id:

Kod
$newsy_id = '2,5,6';


oraz dodatkowo newsy z kategorii:

Kod
$newsy_kat = '5,10,15';



Zapytanie moje wygląda tak:

  1. SELECT n.*
  2. FROM news n, news_kat n2c
  3. WHERE (n.news_id IN (".$newsy_id.")) OR (n.news_id = n2c.news_id AND n2c.kat_id IN (".$newsy_kat.")) AND n.zablokuj=0
  4. ORDER BY n.news_id LIMIT 20;


Zwraca mi to jednak złe wyniki, przeważnie powtarzające sie kilkakrotnie produkty ze zmiennej $newsy_id

Bede wdzięczny za wszelkie wypowiedzi.
aachi
Jeśli newsy o podanych id znajdują się w wybranych do pokazania kategoriach, to w wynikach chyba ten sam news będzie zdublowany... możesz użyć GROUP BY bu usunąć te same wpisy.
kukix
Cytat(aachi @ 25.11.2011, 16:58:13 ) *
Jeśli newsy o podanych id znajdują się w wybranych do pokazania kategoriach, to w wynikach chyba ten sam news będzie zdublowany... możesz użyć GROUP BY bu usunąć te same wpisy.


tak, ale w większości wypadków nie będa się powtarzały, jezeli będa jakieś jednostki, to wtedy zrobie tak jak piszesz, jednak nie moge wyświetlić poprawnie nawet tych co sie nie dublują.
aachi
No dobra skoro tak twierdzisz....
Spróbuj użyć moje poniższe zapytanie i powiedz jakie otrzymujesz wyniki... coś czuję, że jesteśmy blisko rozwiązania...
  1. SELECT n.*
  2. FROM news n, news_kat n2c
  3. WHERE (n.news_id IN (".$newsy_id.")) OR (n.news_id = n2c.news_id AND n2c.kat_id IN (".$newsy_kat.")) AND n.zablokuj=0
  4. GROUP BY n.news_id
  5. ORDER BY n.news_id LIMIT 20;
kukix
Dzieki wielkie, pomogło i już jest ok smile.gif
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.