wyszukiwarka mysql

Odpowiedz Nowy wątek
2006-08-16 14:33
ptrebacz
0

Stworzyłem baze adrsową w mysql, i mam następujący problem:

Oto przykładowa tabela

id |Imie |Nazwisko


1 |Piotr |Kowalski
2 |Tomek |Ptak

szukane kryteria wprowadzam w formularzu itd, mam 2 zmienne $imie i $nazwisko
i teraz mam zapytanie "SELECT * FROM nkt WHERE nazwisko='$anazwisko' OR imie='$aimie'";

jeżeli użyje operatora OR to w przpadku szukania np. Piotr Ptak (czyli imie pierwszego wpisu a nazwisko drugiego) wyświetla mi obie pozycje chociaż żadna nie spełnia moich kryteri, w takim przypadku nie powinien nic pokazać, więc spróbowałem z operatorem AND i tu też mam problem ponieważ jeżeli nie wypełnie któregoś pola w formularzu np. nie podam imienia, to nic mi nie znajduje.

A więc jak zrobić tak aby w przypadku operatora AND on nie brał pod uwagę pustej zmiennej lub w przypadku OR szukał rekordu który zawiera w sobie obie zmienne ($imie i $nazwisko).

Pozostało 580 znaków

2006-08-16 15:04
0

Widzę dwa sposoby: 1 - kontrola zawartości zmiennych przed podstawieniem do zapytania SQL
2 - poeksperymentuj z SQL-ową składnią like = '%cos%'

Pozostało 580 znaków

2006-08-16 15:06
nav
0
if ($anazwisko)
{
    $search = 'nazwisko = "' . $anazwisko . '"';
}
if ($aimie)
{
    $search .= ($search?' OR ':null) . 'nazwisko = "' . $aimie. '"';
}
 
"SELECT * FROM `nkt` WHERE " . $search;

utf-8 rlz! ٩(ಥ_ಥ)۶

Pozostało 580 znaków

2006-08-16 15:43
ptrebacz
0

Ok działa, tylko jeden bląd był zamiast OR ma być AND, a teraz jak zrobić to samo tylko z trzema zmiennymi $imie $nazwisko $ulica

Pozostało 580 znaków

2006-08-16 16:35
nav
0

Analogicznie.

if ($aulica)
{
    $search .= ($search?' OR ':null) . 'ulica= "' . $aulica. '"';
}

utf-8 rlz! ٩(ಥ_ಥ)۶

Pozostało 580 znaków

2006-08-16 17:21
0

czy nie lepiej użyć LIKE?

Pozostało 580 znaków

2006-08-17 00:59
0
DarkAdex napisał(a)

czy nie lepiej użyć LIKE?

like tu nie pomoże - jedynie dyamicxzne genoane wnków


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0