Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]wstępna selekcja tabeli
brymen2
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 1.12.2011

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


Witam,
Jak można zrobić wstępną selekcję tabeli ? tzn.
chiałbym w jednym miejscu miec zapytanie
SELECT * FROM tabela WHERE cos
i następnie odwoływać się do tej tabeli standardowym zapytaniem (SELECT * FROM ...... WHERE ......) która jest juz przefiltrowana przez pierwsze zapytanie
Nie wiem jak to napisać prawidłowo.
Dziękuję za pomoc.
Go to the top of the page
+Quote Post
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Nic z tego nie rozumiem (IMG:style_emoticons/default/sleep.gif) może napisz co chcesz osiągnąć lub przepisz powyższy post na język zrozumiały dla innych
Go to the top of the page
+Quote Post
konrados
post
Post #3





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

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


A ja chyba rozumiem:)

@brymen2: Poczytaj o widokach. Ale przede wszystkim, to powiedz czemu chcesz to robić?
Go to the top of the page
+Quote Post
brymen2
post
Post #4





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 1.12.2011

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


tak myslałem ze nie zostanę zrozumiany. Mam tabelę która ma 10 000 rekordów.
Z tego potrzebuję ok 4 000 rekordów które następnie muszę odpowiednio przefiltrować. Nie chcę ciagle pisać kilku warunków dzięki którym otrzymuję te 4 000 rekordów. 4 000 muszę w róznych miejscach znowu odpowiednio przefiltrować. Dlatego naspiałem wstępna selekcja z 10 000 na 4 000 a następnie zapytania mysql tylko do tych 4 000. Jaśniej juz nie potrafię :]
Go to the top of the page
+Quote Post
konrados
post
Post #5





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

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


No to tak jak powiedziałem - widoki.
Albo filtrujesz php-em - iterujesz przez te 4000 rekordy i sprawdzasz czy dana wartość==coś tam.

edit: zamiast widoków to może raczej stwórz sobie tzw. memory table tyle, że robienie tego przy każdym requeście jest trochę złym pomysłem. Jak bym to zrobił php-em.

Ten post edytował konrados 28.07.2012, 09:27:37
Go to the top of the page
+Quote Post
brymen2
post
Post #6





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 1.12.2011

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


A może inaczej. Czy w zapytaniu "SELECT * FROM tabela WHERE cos " mozna wstawić warunek w postaci zmiennej np.
$warunek = 'cos1 = 1 AND cos2 = 2 AND cos3 = 3 AND cos4 = 4';
i wstawić to do zapytania
"SELECT * FROM tabela WHERE $warunek"
Czy jest to do wykonania ?

Ten post edytował brymen2 28.07.2012, 09:49:18
Go to the top of the page
+Quote Post
CuteOne
post
Post #7





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Jak najbardziej (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
brymen2
post
Post #8





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 1.12.2011

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


ale mi takie rozwiązanie nie chce działać (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
konrados
post
Post #9





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

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


A kod mógłbyś tak może wkleić?

Pamiętaj, że nazwy pól zamykamy w `` (taki odwrócony apostrof) zaś wartości w '' (apostrofy)

Czyli powinno być:

$warunek = " `cos1` = '1' AND `cos2` = '2' AND `cos3`= '3' AND `cos4` = '4' ";

Ten post edytował konrados 28.07.2012, 11:09:31
Go to the top of the page
+Quote Post
CuteOne
post
Post #10





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


@konrados: zaraz się na Ciebie rzucą za te apostrofy (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
brymen2
post
Post #11





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 1.12.2011

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


  1. $warunek = '`cos` = 2';
  2. "SELECT * FROM `tabela` WHERE `".$warunek."`"
Go to the top of the page
+Quote Post
konrados
post
Post #12





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

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


@CuteOne: Ojej czemu? Zawsze tak robiłem...

@brymen2: czy ja dobrze widzę, że cały ten warunek zamykasz w apostrofach?

spróbuj tak:

  1. $warunek = " `cos` = '2' ";
  2. "SELECT * FROM `tabela` WHERE $warunek"


Ten post edytował konrados 28.07.2012, 11:15:49
Go to the top of the page
+Quote Post
brymen2
post
Post #13





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 1.12.2011

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


ok poszło

  1. $warunek = "`cos` = '2'";
  2. "SELECT * FROM `tabela` WHERE ".$warunek.""

dziękuję za pomoc

Ten post edytował brymen2 28.07.2012, 11:19:18
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 16:52