Witam,
Stanąłem przed zadaniem napisania „filtru” danych wyciąganych za bazy (z jednej tabeli)
Formularz html:
[xml:1:ce3217184d]
<select name="metoda" class="mainText" id="metoda">
<option value="none">-- wybierz --</option>
<option value="kolumna1"> kolumna1</option>
<option value=" kolumna2"> kolumna2</option>
.
.
.
<option value=" kolumnaN"> kolumnaN</option>
[/xml:1:ce3217184d]
oraz
[xml:1:ce3217184d]
<input name="wyrazenie" type="text" class="textField" id="wyrazenie" size="25">[/xml:1:ce3217184d]
Wybieramy metodę szukania (odpowiednik kolumny w bazie) oraz wyrażenie.
[sql:1:ce3217184d]
SELECT * FROM table_main WHERE ".$_POST['metoda']." LIKE '%".$_POST['wyrazenie']."%'[/sql:1:ce3217184d]
Problem:
Powielamy kod html 3 razy (docelowo N razy) i otrzymujemy cos w rodzaju prostego filtru.
Problem sprowadza się do napisania możliwie efektywnego kodu php. Najprostsza metoda to rozpisanie tego na wszystkie możliwe warunki, jednak przy większej ilości „metod” i
„wyrażeń” stanowi to problem.
Dla 1
[php:1:ce3217184d]<?php
if($_POST['metoda'] && $_POST['wyrazenie'] ) {
$results = $db->GetAll("SELECT * FROM hotels_main WHERE ".$_POST['metoda']." LIKE '%".$_POST['wyrazenie']."%'");
}
?>[/php:1:ce3217184d]
Dla 2
[php:1:ce3217184d]<?php
if($_POST['metoda'] && $_POST['wyrazenie'] && $_POST['metoda1'] && $_POST['wyrazenie1']) {
$results = $db->GetAll("SELECT * FROM table_main WHERE ".$_POST['metoda']." LIKE '%".$_POST['wyrazenie']."%' AND ".$_POST['metoda1']." LIKE '%".$_POST['wyrazenie1']."%'");
}
?>[/php:1:ce3217184d]
itd.
Bardzo proszę o pomoc w rozwiązaniu tego problemu.
Z góry dziękuję.