Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Wyszukiwarka, Wyszukiwarka z sql
gregi1
post
Post #1





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 24.03.2007

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


Czy znacie moze jakis poradnik, przyklad jak napisac w miare prosto wyszukiwarke informacji.

Chodzi o to ze dodaje sobie osobe do bazy danych (imie, nazwisko, miasto, wojewodztwo) i na stronie chcialbym miec wyszukiwarke z polami do wyszukania:


Imie ......
Nazwisko
Miasto
Wojewodztwo


i jak wpisze w pole imie np. Jan i klikne szukaj to wyszuka mi wszystkich janow, a jak wpisze w pole imie: jan i w pole miasto Gdańska to wyszuka mi wszystkich janow z gdanska.

Nie chce miec tylko jednego pola w wyszukiwarce ktore szukalo by po wszystkich polach. Chcialbym miec dla kazdego pola osobno, a przy wpisaniu w kilka aby szukalo rekordy po tych dwoch polach.

Z gory dziekuje za pomoc.
Go to the top of the page
+Quote Post
nospor
post
Post #2





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




moze sie przyda:
http://nospor.pl/wyszukiwarka-zapytanie-za...runkow-n31.html
Go to the top of the page
+Quote Post
gregi1
post
Post #3





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 24.03.2007

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


Pewnie ze sie przyda (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Dzieki.

To jeszcze jedno pytanie w takim razie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Oki to jak juz mam wszystkie wyniki ktore mnie interesowaly, to jak rozdzielicw danym rekordzie poszczegolne pola abym w html mogl sobie je ulozyc tak jak chce np aby wyswietlony rekord wyswietlal sie nazwisko, wiek, imie?
Go to the top of the page
+Quote Post
webasek
post
Post #4





Grupa: Zarejestrowani
Postów: 274
Pomógł: 35
Dołączył: 18.07.2008
Skąd: Kielce

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


Nie bardzo rozumiem ale może chodzi o mysql_fetch_array
Go to the top of the page
+Quote Post
gregi1
post
Post #5





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 24.03.2007

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


Hmmm jakby to wyjasnic, chodzi mi o to ze, po wykonaniu wyszukiwania tego co szukam przez wyszukiwarke podana wyzej otrzymam jakies wyniki w ktorych np. w imieniu wystepuje slowo JAN.

Przy wyswietlaniu wynikow wyszukiwania chcialbym sobie ladnie ulozyc(rozmiescic, dodac style) do danego rekordu. Aby wygladal on np tak:

---------
Nazwisko Wiek
Imie Telefon

--------
Nazwisko Wiek
Imie Telefon
--------

itd...
Go to the top of the page
+Quote Post
pawkow
post
Post #6





Grupa: Zarejestrowani
Postów: 76
Pomógł: 7
Dołączył: 30.09.2006

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


HTML -> TABLE (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ?

+ w PHP kolorowanie (ewentualnie w JS) ?
Go to the top of the page
+Quote Post
gregi1
post
Post #7





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 24.03.2007

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


To mam jeszcze jedno pytanko, skoro jest cos takiego:

  1. <?php
  2. if (!empty($_POST['slowo_kluczowe'])) //jeśli podano nazwisko
  3.   $wh[] = "SLOWO_KLUCZOWE = '$_POST[slowo_kluczowe]' ";
  4. ?>


To jak to pozniej wykorzystac aby szukalo tego slowa kluczowego w trzech polach w bazie?

Bo w podanym przykladzie jest:

  1. <?php
  2. if (!empty($wh))
  3.   $where = 'where '.implode(' and ', $wh);
  4. else
  5.   $where = '';
  6. ?>
Go to the top of the page
+Quote Post
nospor
post
Post #8





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




  1. <?php
  2. if (!empty($_POST['slowo_kluczowe'])) //jeśli podano nazwisko
  3.  $wh[] = "(POLE1 = '$_POST[slowo_kluczowe]' or POLE2 = '$_POST[slowo_kluczowe]' or POLE3 = '$_POST[slowo_kluczowe]' )";
  4. ?>
Go to the top of the page
+Quote Post
gregi1
post
Post #9





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 24.03.2007

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


Juz chyba ostatni problem, jakas rada czemu to nie chodzi:
  1. <?php
  2. $result = mysql_query($sql);
  3.  
  4. if ($result != null){
  5.  
  6. while ($row = mysql_fetch_array($result)) {
  7.  
  8. echo '<table>';
  9.    echo '<tr><td>';
  10.    echo 'Nazwa firmy: '.$row[1];  
  11.     echo '</tr></td>';
  12.     echo '</table>';
  13. }
  14. }
  15.  
  16. else {
  17. echo 'zle';
  18. }
  19. ?>


Wszystko pieknie ladnie wchodzi o while ale za cholere nie chce wejsc do elsa. Oczywiscie wszystko dotyczy wyszukiwarki. Jak ktos wpisze w jakies pole np nazwe firmy ktorej nie ma w bazie to powinien dostac komunikat zle. Ale nie chce wejsc do tego elsa. Natomiast jak ktos wpisze poprawne dane to jest wszytko ok.
Go to the top of the page
+Quote Post
nospor
post
Post #10





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




jesli zapytanie nie zwraca zadnych danych to mysql_query i tak zwroci resultSet. mysql_query zwraca false tylko wtedy, gdy zapytanie jest bledne skladniowo
Go to the top of the page
+Quote Post
gregi1
post
Post #11





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 24.03.2007

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


To moze jakas sugestia jak to poprawic aby dzialalo i jak nie znalazlo zadnego wyniku w bazie zwrocilo jakis komunikat.

Wiem ze to pytania laika, ale ja nim jestem w php.
Go to the top of the page
+Quote Post
nospor
post
Post #12





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




http://pl.php.net/manual/pl/function.mysql-num-rows.php
i wszystko jasne (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
gregi1
post
Post #13





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 24.03.2007

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


Oki, dzieki pomoglo, to w takim razie jeszcze jedno pyt. co prawda powinno byc w Przedszkolu ale nie bede zakladal nowego topicu. Czy mozna zrobic tak ze mam na stronie wysukiwarke klikne szukaj i na tej samej stronie pod wyszukiwarka pojawia mi sie wyniki. Domyslam sie ze mozna, tylko pytanie jest co musze wpisac w action=" (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) " w formularzu? Bo po prostu kod php wyswietlajacy wyniki wstawiam w miejsce gdzie powine byc wyniki.
Go to the top of the page
+Quote Post
nospor
post
Post #14





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




Cytat
tylko pytanie jest co musze wpisac w action=" " w formularzu?
Ja wogole olewam ten parametr. Jak go nie podasz to formularz wysle sie do samego siebie - czyli to co chcesz osiągnac
Go to the top of the page
+Quote Post
phpion
post
Post #15





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(nospor @ 30.10.2008, 17:40:25 ) *
Ja wogole olewam ten parametr.

Czy przypadkiem nie jest on wymagany przez znacznik <form> do poprawnego przejścia walidacji? Ja zazwyczaj ustawiam go na pustą wartość (action="") i jest ok (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #16





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




Cytat
Czy przypadkiem nie jest on wymagany przez znacznik <form> do poprawnego przejścia walidacji?
Nikt nic nie mowil o poprawnej walidacji (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ok, masz racje, należy podać go pustego a nie olac. (choc "olac" moze tez byc interpretowane jako "pozostawic puste")
Go to the top of the page
+Quote Post
gregi1
post
Post #17





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 24.03.2007

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


A ja myslalem ze w tym znaczniku cos musi byc podane (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Dzieki wszystkim za pomoc, aczkolwiek dzieki wam udaje mi sie sporo nauczyc, wiec kolejny problem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Otoz...

Chcialbym dodac do swojej wyszukiwarki (pisanej z wasza pomoca) cos takiego ze mam wypisane na stronie obok pola do wyszukiwania wszystkie kategorie i po kliknieciu danej kategori otrzymam wszystkie wyniki umieszczone w danej kategori oczywiscie na tej samem stronie co wyszukiwarka.
To co wymyslilem to :
1. Mozna by zrobic kilka (kilkanascie oddzielnych stron) z zapytaniem z danej kateogri. Ale to bez sesnu bo dodajac kategorie musze tworzyc nowa strone.

Druga mysl to:
2. Po kliknieciu w kategorie przekazuje sobie parametr do adresu a w miejscu gdzie to mialoby sie wyswietlic sprawdzam jaki to parament i wyswietlam wyniki.

I teraz problem czy w takim razie dla kazdej nazwy kategori musze robic form? I jak odczytac pozniej ten parametr?

Chyba ze jest jeszcze jakis inny sposob?
Go to the top of the page
+Quote Post
pyro
post
Post #18





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


Cytat(nospor @ 24.10.2008, 11:02:55 ) *


nospor, widze ze wogole nie zabezpieczasz swoich skryptow ;D
Go to the top of the page
+Quote Post
nospor
post
Post #19





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




@pyro jak juz starasz sie kogos "oczernic" to chociac doczytaj wszystko co jest napisane w linku na ktory sie powolujesz:
Cytat
Zapytanie to nie będzie uwzględniało zabezpieczeń przed różnymi atakami typu SQLInjection - nie chcę zaciemniać kodu dodatkowymi "bajerami".

Jakbym do tego kodu dorzucil jeszcze zabawe w zabezpieczenia, to taka początkujaca osoba by juz nic z tego nie zrozumiala. Zabezpieczenia to oddzielny temat
Go to the top of the page
+Quote Post
pyro
post
Post #20





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


Cytat(nospor @ 31.10.2008, 09:49:06 ) *
@pyro jak juz starasz sie kogos "oczernic" to chociac doczytaj wszystko co jest napisane w linku na ktory sie powolujesz:

Jakbym do tego kodu dorzucil jeszcze zabawe w zabezpieczenia, to taka początkujaca osoba by juz nic z tego nie zrozumiala. Zabezpieczenia to oddzielny temat


Nie gadaj bzdur, ja nikogo nie oczerniam, a to rzeczywiście mój błąd, bo patrzyłem tylko na kod
Go to the top of the page
+Quote Post
nospor
post
Post #21





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




Cytat
Nie gadaj bzdur, ja nikogo nie oczerniam,
Dlatego slowo "oczerniam" dalem w cudzyslowiu, by niebrac tego doslownie.

Cytat
a to rzeczywiście mój błąd, bo patrzyłem tylko na kod
Nawet jakbym nie bylo tego dopisku w komentarzu, to i tak Toj tekst bylby nie na miejscu. Ja podaje na stronie rozwiazania pewnych problemow. Inne "pierduly" jak obrona przed atakami pozostawiam w rekach czytajacego. Jak jeszcze tego nie zna to z czasem pozna. Jak nie sam to z jakiegos innego artykulu czy forum.
Nie bede przeciez przy jednym zagadnieniu wyjasnial masy innych.

Ale to nie temat na takie dyskusje. Jak chcesz pogadac o tresci mojej strony to zaloz oddzielny temat, w ktorym bedziesz mogl opisywac inne "niedociegniecia".


@gregi1 a czemu nie mozesz tej kategorii podczepic pod formularz?
Go to the top of the page
+Quote Post
gregi1
post
Post #22





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 24.03.2007

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


Cytat(nospor @ 31.10.2008, 17:19:06 ) *
@gregi1 a czemu nie mozesz tej kategorii podczepic pod formularz?


Pewnie ze bym mogl, ale nie tylko ja decyduje jak ta strona ma wygladac i zostalo ustalone ze dostkowo maja byc linki do kategorii i wojewodztw

Cytat(nospor @ 27.10.2008, 20:04:11 ) *
  1. <?php
  2. if (!empty($_POST['slowo_kluczowe'])) //jeśli podano nazwisko
  3.  $wh[] = "(POLE1 = '$_POST[slowo_kluczowe]' or POLE2 = '$_POST[slowo_kluczowe]' or POLE3 = '$_POST[slowo_kluczowe]' )";
  4. ?>


Wroce jeszcze do tego zagadnienia. Mam problem bowiem niby jest oki, ale jak wpisze sobie w polu wyszukiwarki "Jan" natomiast w polu w bazie mam "Jan Kowalski" to juz mi tego rekordu nie znajdze. Jak to zrobic aby znajdowalo slowo w ciagu slow w danym polu w bazie?
Go to the top of the page
+Quote Post
danek
post
Post #23





Grupa: Zarejestrowani
Postów: 48
Pomógł: 1
Dołączył: 1.02.2004
Skąd: warszawa

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


name LIKE "%Jan%"
Go to the top of the page
+Quote Post
gregi1
post
Post #24





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 24.03.2007

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


  1. <?php
  2. if (!empty($_POST['slowo'])) //jeśli podano nazwisko
  3.   $wh[] = "(POLE2 = '$_POST[slowo]')";
  4.  
  5. if (!empty($_POST['slowo_kluczowe'])) //jeśli podano nazwisko
  6.   $wh[] = "(POLE1 = '$_POST[slowo_kluczowe]' or POLE2 = '$_POST[slowo_kluczowe]' or POLE3 = '$_POST[slowo_kluczowe]' )";
  7. ?>



  1. <?php
  2. if (!empty($wh))
  3.   $where = 'where '.implode(' and ', $wh);
  4. else
  5.   $where = '';
  6. ?>


No dobrze ale jak to "like" polaczyc w jedno zapytanie. Bo w chwili obecenej mam cos takieto
Go to the top of the page
+Quote Post
danek
post
Post #25





Grupa: Zarejestrowani
Postów: 48
Pomógł: 1
Dołączył: 1.02.2004
Skąd: warszawa

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


Like to jest odpowiednik =, więc stosujesz tak samo w where tyle, że zamiast = stosujesz LIKE
$wh[] = "(POLE2 LIKE '%$_POST[slowo]%')";
Go to the top of the page
+Quote Post
gregi1
post
Post #26





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 24.03.2007

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


TO teraz powstal kolejny problem, no moze nie problem a zagwostka. Napewno juz ktos to realizowal i pomoze jakim alg. albo schematem dzialania z np pseudokodem.

Tak wiec korzystajac z zasady dzialania wyszukiwarki nospor'a uzytkownika klika wyszukaj, dostaje wyniki i na gorze strony dodatkowo opcje uluz wg alfabetu, telefonu itd. Klika dana opcje i dostaje wyniki ulozone wg danej zasady.

Nie wiem wlasnie jak przechowac informacje jakie dane wpisal w wyszukiwarce poprzednim razem. Bo pewnie ze po kliknieciu w uloz alfabetycznie musi otrzymac wyniki wg tych kryteriow ktorych uzyl wczesniej. Dodam ze jak napewno z watku wiecie zmienne dotyczace kryteriow w danym wyszukiwaniu trzymane sa w $where.
Go to the top of the page
+Quote Post
nospor
post
Post #27





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




musisz pamietac te dane np. w sesji
Problem opisywalem przy okazji pagera - tam jak klikasz na kolejne strony to tez musisz pamietac stan wyszukiwarki:
http://nospor.pl/formularz-i-stronicowanie...-stanu-n26.html
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 15.09.2025 - 05:04