Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz a wyszukiwanie
Forum PHP.pl > Forum > PHP
bartek.jaw
Witam.

Mam taki problem.

Mam w bazie danych tabelę z polami np imie, nazwisko, imie2, nazwisko2 itp.

Mam też formularz do wyszukiwania z tej tabeli.

Mój problem jest taki, że nie wiem jak zrobić żeby z jednego pola w formularzu np Imię, wyszukiwało mi albo zawartości tabeli pola imie lub pola imie2.

Szukałem na forum, ale niestety nie znalazłem.

Serdecznie pozdrawiam.
batman
  1. SELECT *
  2. FROM tabela WHERE imie='".$_POST['imie']."' OR imie2='".$_POST['imie']."'


Na przyszłość polecam manuale winksmiley.jpg
crash
Nosz żartujesz, że nie ma tongue.gif
  1. SELECT *
  2. FROM tabela WHERE imie LIKE "%szukane%" OR imie2 LIKE "%szukane%"
bartek.jaw
Właściwie to macie rację, ale ja mam taki skrypt i nie wiem jak sobie z tym poradzić :-)

  1. <?php
  2. $where = '';
  3.  
  4.  if( !empty( $_POST[ 'szukImie' ] ) or !empty( $_POST[ 'szukNazw' ] ))
  5.  {
  6.  $where .= 'WHERE ';
  7.  $szuk  = array();
  8.  
  9.  if( !empty( $_POST[ 'szukImie' ] ))
  10.  {
  11.  $szuk[] = 'imie = "' . $_POST[ 'szukImie' ] . '"';
  12.  }
  13.  if( !empty( $_POST[ 'szukNazw' ] ) )
  14.  {
  15.  $szuk[] = 'nazwisko = "' . $_POST[ 'szukNazw' ] . '"';
  16.  }  
  17.  $where .= implode( ' OR ', $szuk);
  18.  }
  19.  
  20. $zapytanie = "SELECT
  21.  k.nazwisko AS nazwisko,
  22.  k.imie AS imie,
  23.  
  24.  FROM
  25. klienci k,
  26.  
  27. WHERE
  28.  k.imie like '%".$imie."%' AND
  29.  k.nazwisko like '%".$nazwisko."%' AND
  30.  
  31. $wynik = @mysql_query($zapytanie);
  32.  
  33. ?>


Próbowałem wpisać coś takiego :
k.imie like '%".$imie."%' OR k.imie like '%".$imie2."%' AND
ale wyśiwetla mi jakieś bzdury.

Proszę o małą podpowiedź.

Pozdrawiam.
batman
  1. <?php
  2.  
  3. $where = ' WHERE ';
  4.  
  5. if(!empty( $_POST[ 'szukImie' ] ))
  6. {
  7.  $where.="imie='".$_POST[ 'szukImie' ]."'";
  8. }
  9.  
  10. if(!empty( $_POST[ 'szukNazw' ] ))
  11. {
  12. $where.="nazwisko='".$_POST[ 'szukNazw' ]."'";
  13. }
  14.  
  15. if($where==' WHERE ')
  16. {
  17.  $where='';
  18. }
  19.  
  20. $zapytanie = "SELECT
  21.  k.nazwisko AS nazwisko,
  22.  k.imie AS imie,
  23.  FROM
  24. klienci k";
  25. $zapytanie=$zapytanie.$where;
  26.  
  27. $wynik = @mysql_query($zapytanie);
  28. ?>


Pisałem bez sparawdzania ale powinno zadziałać.

Zapomniałem o like:

  1. <?php
  2. $where.="imie like'%".$_POST[ 'szukImie' ]."'%";
  3. ?>

I tak samo dla szukNazw
bartek.jaw
Batman, skrytp, który wpisałem wyżej działa dobrze, więc nie muszę go zmieniać.

Chodziło mi o zapytanie w stylu:

  1. k.imie LIKE '%".$imie."%' OR k.imie LIKE '%".$imie2."%' AND


To zapytanie wyświetla mi jakieś bzdury.

Jeżeli możesz to popraw mój skrypt włączając w niego to zapytanie.

Dzięki za pomoc.

Pozdrawiam.
batman
  1. <?php
  2. $zapytanie = "SELECT
  3.  k.nazwisko AS nazwisko,
  4.  k.imie AS imie
  5.  
  6.  FROM
  7. klienci k
  8. WHERE
  9.  k.imie like '%".$imie."%' AND
  10.  k.nazwisko like '%".$nazwisko."%'";
  11. ?>

A teraz questionmark.gif Dodałem cudzysłów i średnik winksmiley.jpg oraz usunąłem kilka przecinków winksmiley.jpg
crash
Nie wiem tylko po co ta pierwsza część kodu, która btw. napisałem Ci wczoraj, ale nawet nie wykorzystujesz jej w zapytaniu smile.gif
bartek.jaw
Tak masz rację, brakowało średnika i przecinek był zbędny. Wkleiłem kawałek kodu z całości i nie zwróciłem uwagi na to. Moja wina smile.gif ale nie w tym sens.

Cały czas nie wiem jak sformułować to zapytanie, żeby z jednego pola formularz wyszukiwało z dwóch pól w tabeli sad.gif

Pozrawiam.
batman
  1. <?php
  2.  
  3. WHERE
  4.  (k.imie like '%".$imie."%' AND
  5.  k.nazwisko like '%".$nazwisko."%'") OR
  6.  (k.imie2 like '%".$imie."%' AND
  7.  k.nazwisko2 like '%".$nazwisko."%'"
  8.  
  9. ?>

O to chodzi questionmark.gif
bartek.jaw
Nie dokładnie o to, ale cały problem polegał na nawiasach.

Chciałem Wam bardzo podziękować za pomoc winksmiley.jpg

Pierwszą część tego skryptu napisał crash, za to też mu bardzo dziękuję. Wg mnie działa super.

Jeżeli robię coś źle, lub nie umiem czegoś wyszukać to proszę o wyrozumiałość, ponieważ uważam siebie za bardzo początkującego programistę php biggrin.gif

Takie forum jest dla mnie lekarstwem na całe zło winksmiley.jpg

Dziękuję jeszcze raz i pozdrawiam.

Bartek.
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.