Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Rozbudowane zapytanie, W czym błąd?
-SinusConst-
post 19.02.2012, 15:56:18
Post #1





Goście







Witam,

Mam dwie tabele, które prezentują się następująco:

`sys_klik`
`id` a_i INT PRIM_K
`id_user` INT
`id_strony` INT
{InnoDB}

`sys_strony`
`id` a_i INT PRIM_K
`adres` VAR(100)
{InnoDB}

I teraz układam zapytanie, które ma wyciągnąć adres strony z tabeli `sys_strony`, której nie ma w tabeli `sys_klik`

  1. SELECT sys_strony.* FROM sys_strony, sys_klik WHERE sys_klik.id_strony != sys_strony.id AND sys_klik.id_user = 1


W PHPie prezentuje się to następująco

  1. $strony = mysql_query("SELECT sys_strony.* FROM sys_strony, sys_klik WHERE sys_klik.id_strony != sys_strony.id and sys_klik.id_user = 1");
  2. $strony_ile = mysql_num_rows($strony);
  3. if($strony_ile != 0){
  4. $strony_row = mysql_fetch_assoc($strony);
  5. ....dalsza czesc kodu....
  6. }


Mój problem polega na tym, że skrypt działa tak, jakby był bez " sys_klik.id_strony != sys_strony.id" i pobiera dane(adres www) normalnie
Go to the top of the page
+Quote Post
-SinusConst-
post 19.02.2012, 16:17:37
Post #2





Goście







Kombinowałem tez w taki sposób

  1. SELECT DISTINCT * FROM sys_strony WHERE NOT EXISTS(SELECT * FROM sys_klik WHERE sys_strony.id = sys_klik.id_user)


Rezultaty podobne
Go to the top of the page
+Quote Post
bzeebzee
post 19.02.2012, 16:48:19
Post #3





Grupa: Zarejestrowani
Postów: 38
Pomógł: 3
Dołączył: 25.12.2011

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


  1. SELECT A.* FROM sys_strony A LEFT JOIN sys_klik B ON A.id = B.id_strony WHERE B.id_strony = '';


może to zadziała, sprawdź
Go to the top of the page
+Quote Post
-SinusConst-
post 19.02.2012, 16:59:50
Post #4





Goście







Dałem owe zapytanie, sprawdzałem różne warianty i za każdym razem zwraca mi, że brak wyników.
Go to the top of the page
+Quote Post
-SinusConst-
post 19.02.2012, 18:50:53
Post #5





Goście







Prawidłowy kod:

  1. SELECT DISTINCT * FROM sys_strony WHERE NOT EXISTS(SELECT * FROM sys_klik WHERE sys_strony.id = sys_klik.id_strony)


Nie zauważyłem, że porównywałem id usera z id strony .......
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: 9.07.2025 - 04:53