Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]wstępna selekcja tabeli
Forum PHP.pl > Forum > Przedszkole
brymen2
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.
CuteOne
Nic z tego nie rozumiem sleep.gif może napisz co chcesz osiągnąć lub przepisz powyższy post na język zrozumiały dla innych
konrados
A ja chyba rozumiem:)

@brymen2: Poczytaj o widokach. Ale przede wszystkim, to powiedz czemu chcesz to robić?
brymen2
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ę :]
konrados
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.
brymen2
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 ?
CuteOne
Jak najbardziej smile.gif
brymen2
ale mi takie rozwiązanie nie chce działać sad.gif
konrados
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' ";
CuteOne
@konrados: zaraz się na Ciebie rzucą za te apostrofy wink.gif
brymen2
  1. $warunek = '`cos` = 2';
  2. "SELECT * FROM `tabela` WHERE `".$warunek."`"
konrados
@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"
brymen2
ok poszło

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

dziękuję za pomoc
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.