Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyszukiwanie
Kali997
post 5.08.2005, 22:37:48
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 5.08.2005

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


Witam
Mam w bazie danych tabele ze spisem plyt cd. Tabela zawiera kolumny ID, wykonawca, tytul. Chce stworzyc wyszukiwarke do tej tabeli. Ale taka ktora by mogla wyszukiwac po numerze ID, nazwie wykonawcy lub nazwie tytułu. Nie mam zielonego pojecia jak sie za to zabrac. Prosze o pomoc.
Go to the top of the page
+Quote Post
ikioloak
post 5.08.2005, 22:44:36
Post #2





Grupa: Zarejestrowani
Postów: 416
Pomógł: 0
Dołączył: 8.01.2004

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


Czym sie rozni takie wyszukiwanie jak napisales od jakiegokolwiek innego? Robisz jakis formularz i pozniej cos ala
  1. SELECT *
  2. FROM plyty WHERE id=$var OR nazwa='$var' OR title='$var'

oczywiscie to nie jest w zadnym wypadku gotowiec zapytania. Rozumiem ze cos w php potrafisz i liznales chociaz mysqla. Jak dalej czegos nie wiesz, to pisz, ale konkretniej o co chodzi.

Ten post edytował ikioloak 5.08.2005, 22:45:09
Go to the top of the page
+Quote Post
Kali997
post 5.08.2005, 23:04:14
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 5.08.2005

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


Juz konkretnie mowie o co mi chodzi. Che zeby na formularzu byly trzy pola input: ID, wykonawca, tytuł oraz przycisk submit. Wyszukiwanie ma polegac na tym ze jezeli wpisze wartosc e pole ID to ma wyszukiwac w kolumnie ID w bazie danych, jezeli wpisze wartosc w pole wykonawca to ma wyszukiwac w kolumnie wykonawca w bazie dancyh itd.
Go to the top of the page
+Quote Post
ikioloak
post 5.08.2005, 23:34:54
Post #4





Grupa: Zarejestrowani
Postów: 416
Pomógł: 0
Dołączył: 8.01.2004

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


No to tworzysz formularz - z tym chyba problemu nie ma. Dalej w pliku php ktory jest w action formularza robisz cos ala to:
  1. <?php
  2.  
  3. $query=&#092;"SELECT * FROM baza WHERE \";
  4. if ($_POST['id']!='') 
  5. {
  6.  $query.='id = '.$_POST['id'].' ';
  7.  if (($_POST['nazwa']!='')||($_POST['tytul'])!='') $query.=' AND';
  8. }
  9. if ($_POST['nazwa']!='')
  10. {
  11.  $query.='nazwa=''.$_POST['nazwa'].'' ';
  12.  if ($_POST['tytul']!='') $query.=' AND';
  13. }
  14. if ($_POST['tytul']!='') $query.=' tytul=''.$_POST['tytul'].'' ';
  15. ...
  16. $result=mysql_query($query) or die(mysql_error());
  17. ...
  18.  
  19. ?>

Pisane z palca wiec bez gwarancji. Moze to mozna zrobic prosciej i przejzysciej - na razie tylko to mi przychodzi do glowy.

Ten post edytował ikioloak 5.08.2005, 23:35:55
Go to the top of the page
+Quote Post
Kali997
post 7.08.2005, 11:09:26
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 5.08.2005

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


Niby wszystko Ok tylko cos z ta linijka jest nie tak
$query="SELECT * FROM baza WHERE "; nie bardzo moge wymyslec co ma byc po WHERE
Go to the top of the page
+Quote Post
ikioloak
post 7.08.2005, 13:19:09
Post #6





Grupa: Zarejestrowani
Postów: 416
Pomógł: 0
Dołączył: 8.01.2004

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


Nic nie ma byc po where. To co po where bedzie to wyjdzie na postawie tego co ktos wpisze w formularzu. Probowales odpalic w ogole to co napisalem wczesniej?
Go to the top of the page
+Quote Post
popo
post 7.08.2005, 14:25:19
Post #7





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 15.07.2005

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


moze troche inaczej (maly opis do skryptu zaprezentowanego przez ikioloak)

zwroc uwage ze zmienna $query wystepuje w ifach i to po lewej stronie znaku rownosci co oznacza ze cosik do niej w tych ifach podstawiamy (konkretnie to podstawiamy wartosci z formularza - pola wyszukiwania jesli cokolwiek w nich bylo) a zapis w stylu
  1. <?php
  2. $query.= 
  3. ?>
oznacza ze dopisujemy tekst do zmiennej na jej koncu czyli po where snitch.gif

nie wiem tylko czy to zadziala jesli w zadnym polu user nic nie wpisze a nacisnie submit proponowal bym wiec dodac where do zapytania tylko w wypadku jesli w ktores z pol wyszukiwania wstawiono jakis ciag znakow

minimalnie zmieniony skrypt
  1. <?php
  2.  
  3. $query=&#092;"SELECT * FROM baza\";
  4. if ($_POST['id']!='' or $_POST['nazwa']!='' or $_POST['tytul']!='') 
  5.  {
  6. $query.=&#092;" WHERE \";
  7. if ($_POST['id']!='')
  8. {
  9. $query.='id = '.$_POST['id'].' ';
  10. if (($_POST['nazwa']!='')||($_POST['tytul'])!='') $query.=' AND';
  11. }
  12. if ($_POST['nazwa']!='')
  13. {
  14. $query.='nazwa=''.$_POST['nazwa'].'' ';
  15. if ($_POST['tytul']!='') $query.=' AND';
  16.  }
  17.  if ($_POST['tytul']!='') $query.=' tytul=''.$_POST['tytul'].'' ';
  18.  }
  19. ...
  20. $result=mysql_query($query) or die(mysql_error());
  21. ...
  22.  
  23. ?>

mozna tez uzyc isset() do sprawdzenia czy zmienna ma wartosc snitch.gif
Go to the top of the page
+Quote Post
Kali997
post 8.08.2005, 23:31:30
Post #8





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 5.08.2005

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


Dzieki za pomoc dziala super.
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: 14.08.2025 - 04:44