Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Choose from MySql only puted in search form?
azahiel
post 20.01.2006, 05:39:54
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 20.01.2006

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


Witam
po krotce opisze moj problem
Mamam tabele z danymi o produkcie z kilkoma parametrami opisujacymi produkt czyli jakies slowo klucz, kategoriw, miasto z korego pochodzi itd
-----------
product
----------
-id_product
-name
-id_keywords
-id_category
...

--------------
keywords
--------------
id_keywords
keywords_name

------------
category
------------
...
...

uzywajac formulaza :

<form method="get" action='index.php'>
<input type='text' name='sort_key' size='20'>
<input type=submit value='Search' >
</form>

chcialby moz pobrac z bazy tylko te produkty ktore spelnialy by choc jeden, warunek sort_key'a teoretycznie konstuuje zapytanie

$sql = "SELECT * FROM product WHERE id_keywords =
'".$_GET[sort_key]."' OR id_category = '".$_GET[sort_key]."' ...
";

Przepraszam zaawansowanych za tak banalne pytanie - sdla mnie nie jest ono jeszce banalne wiec prosze o jakas wskazowke jak napisac zapytanie do MySQLa by wyswietlil miprodukty dla danego slowa kucza , albo prosze o skierowanie mnie od jakiegos tuoriala (moze byc po ANG.)
Dziekuje z gory za wskazowki
Pozdrawiam
Go to the top of the page
+Quote Post
nospor
post 20.01.2006, 09:16:25
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No chlopie, z tym php Pro to "lekko" przesadziles. Przenosze.

No ale w czym problem? Czemu teoretycznie robisz zapytanie? zrob praktycznie smile.gif

pozatym na forum az sie roi od takich problemow.

i uzywaj bbcode


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
DzikiLis
post 20.01.2006, 12:45:44
Post #3





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 16.12.2005
Skąd: Warszawa, Kabaty

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


Proponuję połączyć tabele:


  1. SELECT p.id_product, p.name
  2. FROM product p, keywords k, category c
  3. WHERE p.id_keywords = k.id_keywords AND p.id_category = c.id_category AND (k.keywords_name = '$_GET[sort_key]' OR c.category_name = '$_GET[sort_key]')


Albo ładniej z JOINami:

  1. SELECT p.id_product, p.name
  2. FROM product p
  3. LEFT JOIN keywords k ON p.id_keywords = k.id_keywords
  4. LEFT JOIN category c ON p.id_category = c.id_category
  5. WHERE k.keywords_name = '$_GET[sort_key]' OR c.category_name = '$_GET[sort_key]'
Go to the top of the page
+Quote Post
azahiel
post 22.01.2006, 04:43:32
Post #4





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 20.01.2006

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


Witam
podumalem i teraz zrobilem cos taskiego

  1. SELECT DISTINCT B.*
  2. FROM products B
  3. LEFT JOIN cities C ON B.id_city = C.id_city
  4. LEFT JOIN categories CA ON B.id_category = CA.id_category
  5. WHERE (B.stat_fee = '1' AND B.stat_life = '1' AND C.city_name = '".$_GET['sort_key']."' OR CA.category_name = '".$_GET['sort_key']."'

i w sumie formularz mi wybiera ladnie jak podam jakis slowo kucz, tylko problem jest taki ze kiedys pamietam robilem SORT ORDER BY $_GET[key...] i nawwet jak wpisalem tylko poczatkowe litery jakiegos wyrazu wybieral z bazy wszystkie pozycje np zaczynajace sie na 'abc...' teraz jak nie znajdzie slowa w bazie nie wyswietla nic, juz nie kontaktuje za bardzo by zmontpwac top zapytanie by wybieralo z bazy w taki sposob aby np : C.city_name - w bazie jest: Warszawa a CA.category_name :=> wagony, by po wpisaniu wartosci dla zmiennej $_GET['sort_key'] tylko 2 liter "wa" wyswietlil wszystkie rekordy ktore naleza to 'kategori' - "wagony" oraz sa z Warszawy, itd w zaleznosci ile dokleje uwarunkowan w WHERE,
Jesli ktoś z Was wie albo ma wizje jak zmontowac takie zapytanie, bede wdzieczny, ogromnie, pozdawiam wszystkich i dzizejkuje za odpowiedzi smile.gif
/ "...dlaczego noc tak krotka jest..."
Go to the top of the page
+Quote Post
SongoQ
post 22.01.2006, 10:59:02
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Sam do tego dojdz jak trzeba zrobic. To sa banalne sprawy, a jak Ci napiszemy to wyleci Ci z glowy jak wczesniej. Pomocne CI bedzie polecenie "LIKE" i do sortowanie nie "SORT ORDER BY" tylko "ORDER BY"


--------------------
Go to the top of the page
+Quote Post
azahiel
post 23.01.2006, 16:09:51
Post #6





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 20.01.2006

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


Dzieki za wskazowke tylko po takim poscie zastanawiam sie nad sensem istnienia tego forum - nigdzie nie jest napisane "ze na tym forum odpowiadamy tylko na zaawansowane zapytania!" w sumie kazdy problem moge rozwiazac samemu zajmniemi to tylkotorche wiecej czasu - a wlasnie ludzie kozystaja z FOROW po to by ten czas zaoszczedzic ..
Go to the top of the page
+Quote Post
SongoQ
post 23.01.2006, 18:43:42
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Cytat
a wlasnie ludzie kozystaja z FOROW po to by ten czas zaoszczedzic ..

I tak i nie. Moj cel na forum - to zdobywanie wiedzy, czytajac posty i odpowiadajac spotykasz problemy z ktorymi mozesz sie w przyszlosci spotkac lub spotkales. Nie wykluczajac nalogu hehehe.


--------------------
Go to the top of the page
+Quote Post
azahiel
post 24.01.2006, 07:39:46
Post #8





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 20.01.2006

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


OKi niech Ci bedzie niebede podwazal uzytecznosci forum gdyz jego wykozystanie jest dla kazdego indywidualne,
wracajac do tematu skonstuowalem zapytanie
  1. SELECT DISTINCT B.*
  2. FROM products
  3. B
  4. LEFT JOIN cities C ON B.id_city = C.id_city
  5. LEFT JOIN categories CA ON B.id_category = CA.id_category
  6. WHERE (B.stat_fee = '1' AND B.stat_life = '1' AND C.city_name = '".$_GET['sort_key']."' OR CA.category_name = '".$_GET['sort_key']."'
  7. LIKE '".$_GET['sort_key']{0}."%'

ale nie za bardzo mi dziala na dzin dzisiejszy niemam wizji by to zrobic totez zwracam sie z wielka prosba do tych ktorzy juz sie spodkali z tamim problemem i sa w stanie mi pomoc, jesli brakuje mi profesjonalizmu "to przepraszam" ale z dnia na dzien sie ucze.
Pozdrawiam i dziekuje za odpowiedzi...
Go to the top of the page
+Quote Post
SongoQ
post 24.01.2006, 11:27:16
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Niepotrzebny nawias i jak dalesz LIKE to musisz okreslic pole.

Przyklad:
pole LIKE '%dfasdfasdf%'


--------------------
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: 27.06.2025 - 06:21