Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zapytanie sql
toaspzoo
post 4.12.2011, 16:07:47
Post #1





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Witam, mam oto takie zapytanie listujące mi wpisy moich znajomych z bazy danych:

  1. SELECT
  2. *
  3.  
  4. FROM
  5.  
  6. znajomek_zmysli,
  7. znajomek_znajomi
  8.  
  9. WHERE
  10. (
  11. znajomek_zmysli.nick IN
  12. (
  13. SELECT id_znajomego FROM znajomek_znajomi WHERE id_znajomego2 = '$id')
  14. AND
  15. znajomek_znajomi.id_znajomego2 = '$id'
  16. AND
  17. znajomek_znajomi.id_znajomego= znajomek_zmysli.nick
  18. )
  19. OR
  20. (
  21. znajomek_zmysli.nick IN
  22. (
  23. SELECT id_znajomego2 FROM znajomek_znajomi WHERE id_znajomego = '$id')
  24. AND
  25. znajomek_znajomi.id_znajomego = '$id'
  26. AND
  27. znajomek_znajomi.id_znajomego2= znajomek_zmysli.nick
  28. )
  29.  
  30.  
  31.  
  32. ORDER BY znajomek_zmysli.id DESC LIMIT 0,15


Zmienna $id oznacza moje id

chciałbym wyświetlić nie tylko ich wpisy, lecz swoje, ale gdy dodaję na dole (przed limit...)

  1. OR
  2. (
  3. znajomek_zmysli.nick = '$id';
  4. )


cała tablica wypełnia mi się jednym wpisem



--
z góry dziękuję za pomoc


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
amii
post 4.12.2011, 16:29:33
Post #2





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

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


Co zwracają podzapytania ? Bo jeśli zwracają puste wyniki to 3 warunek
  1. OR znajomek_zmysli.nick = '$id';
zostaje spełniony i całość zwraca jeden rekord tak jak to opisałeś.


--------------------
gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet.
Zarabianie bez wysiłku na domenach bez ruchu: prolink.
Go to the top of the page
+Quote Post
toaspzoo
post 4.12.2011, 19:31:41
Post #3





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


podzapytania zwracają kolejno id moich znajomych z bazy danych
bo są przykładowo w bazie

id_znajomego | id_znajomego2

12 | 56
46 | 12

---
i nie wiadomo w której kolumnie jestem, po to ten system

więc jak mam zrobić, aby zwrócił to wszystko + to, co w warunku na dole ?

pozdrawiam


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
Wykrywacz
post 9.12.2011, 12:01:18
Post #4





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

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


  1. SELECT * FROM znajomek_zmysli a ,znajomek_znajomi b
  2. WHERE
  3. (
  4. a.id_znajomego=b.nick
  5. OR
  6. a.id_znajomego2=b.nick
  7. ) AND b.nick = '$id'


A nie prościej tak?
Go to the top of the page
+Quote Post
toaspzoo
post 9.12.2011, 12:13:48
Post #5





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


i co, potem w pętli to muszę zrobić, chodzi o szybkość zapytania


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
5k7
post 9.12.2011, 12:32:29
Post #6





Grupa: Zarejestrowani
Postów: 65
Pomógł: 2
Dołączył: 5.12.2006

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


Cytat(Wykrywacz @ 9.12.2011, 12:01:18 ) *
  1. SELECT * FROM znajomek_zmysli a ,znajomek_znajomi b
  2. WHERE
  3. (
  4. a.id_znajomego=b.nick
  5. OR
  6. a.id_znajomego2=b.nick
  7. ) AND b.nick = '$id'


A nie prościej tak?


A będzie to działać ? Wiem, że kiedyś miałem podobny problem. I powinno byc where (a.id_znajomego=b.nick AND b.nick = '$id') OR (a.id_znajomego2=b.nick AND b.nick = '$id'). Może coś pomieszałem bo nie śledziłem specjalnie to co pisaliście wcześniej.

Petlę to juz chyba w php, bo nie w bazie ; ]
Go to the top of the page
+Quote Post
Wykrywacz
post 9.12.2011, 12:33:50
Post #7





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

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


Ale co ty chcesz w pętli dalej z tym zrobić bo nie rozumiem smile.gif

Jeżeli chcesz wyświetlić wszystkie to po prostu wywalasz warunek z where...
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 Wersja Lo-Fi Aktualny czas: 13.06.2025 - 16:06