agentmullder
6.05.2010, 10:32:04
Dzień dobry. Proszę o pomoc w rozwikłaniu dosyć małego problemu. Jestem początkującym w tej dziedzinie, wiec rozwiązanie może się okazać błahe. Otóż:
mam tabelę zbudowaną z kilkunastu kolumn i do niej chcę zrobić na stronie wyszukiwarkę obiektów. Wyszukiwarka chciałbym, aby miała możliwość wyszukiwania po wybranej przez użytkownika kolumnach (jednej, dwóch lub kilku). Tabela samochody z kolumnami: marka, model, rok produkcji, kolor, silnik, itp. Formularz na stronie posiada możliwość wyszukiwania auta pod względem wszystkich kategorii. Np: chcemy wyszukać auto mając dane: rok produkcji, kolor. Po wpisaniu w pola rok produkcji i kolor odpowiednich danych wyszuka nam komplet informacji o samochodach nas interesujących. Ale w formularzu na stronie są jeszcze pola: marka, model i itp. Jeśli nic tam nie wpiszemy (bo nie mamy takich informacji po których będziemy szukać) to jak ułożyć zapytanie, aby w przypadku pustego pola: marka, model wyszukało nam w bazie auta o znanym przez nas kolorze i roku produkcji?
Jeśli zmienna przyjmie pustą wartość (brak informacji o marce, modelu czy pojemności silnika), wówczas wynik zapytania do bazy zwróci pusty rekord.
Mam nadzieję, że opisałem to w zrozumiałym języku.
pedro84
6.05.2010, 10:35:37
Tutaj znajdziesz potrzebne informacje.
agentmullder
6.05.2010, 15:48:21
Cytat(pedro84 @ 6.05.2010, 11:35:37 )

Tutaj znajdziesz potrzebne informacje.
Siedziałem już nad tym tutorialem kilka godzin i nie radze prawdopodobnie z ostatnim błędem:
Cytat
Something is wrong in your syntax obok 'zapytanie' w linii 1
<form method="post">
Model<input type="text" name="model" />
Marka<input type="text" name="marka" />
Silnik<input type="text" name="silnik" />
<input type="submit" name="znajdz" value="znajdz">
</form>
<?php
if(isset($_POST['znajdz'])){ if (!empty($_POST['model'])) $wh[] = "flota_model = '$_POST[model]' ";
//$wh[] = "flota_model LIKE '%$model%'";
if (!empty($_POST['marka'])) $wh[] = "flota_marka = '$_POST[marka]' ";
//$wh[] = "flota_marka LIKE '%$marka%'";
if (!empty($_POST['silnik'])) $wh[] = "flota_silnik = '$_POST[silnik]' ";
//$wh[] = "flota_silnik LIKE '%$silnik%'";
if (!empty($wh)){ $where = 'where '.implode(' and ', $wh); } else{ $where = ''; }
$zapytanie = 'SELECT * FROM flota '.$where;
}
?>
zordon
6.05.2010, 15:55:28
zgubiłeś dolara!
$wynik = mysql_query($zapytanie);
agentmullder
6.05.2010, 16:21:51
Cytat(zordon @ 6.05.2010, 16:55:28 )

zgubiłeś dolara!
$wynik = mysql_query($zapytanie);
Omajgosz

Taki byk

Obu panom dziękuję za pomoc, oczywiście po plusiku