
A to kod formularza
Kod
<form action="search.php" method="post">
<p>Nazwa produktu:
<input type="text" name="phrase" />
Typ:
<input type="checkbox" name="a" value="a">
A
<input type="checkbox" name="b" value="b">
B
<input type="checkbox" name="c" value="c">
C </p>
<p>Cena od:
<input type="text" name="cena1">
do
<input type="text" name="cena2">
<input type="submit" value="Szukaj!" />
</p>
</form>
<p>Nazwa produktu:
<input type="text" name="phrase" />
Typ:
<input type="checkbox" name="a" value="a">
A
<input type="checkbox" name="b" value="b">
B
<input type="checkbox" name="c" value="c">
C </p>
<p>Cena od:
<input type="text" name="cena1">
do
<input type="text" name="cena2">
<input type="submit" value="Szukaj!" />
</p>
</form>
Tutaj kod skryptu PHP, który szuka i wyświetla
<?php // program wyszukiwarki - search.php // wyświetlenie nagłówka // usunięcie niepotrzebnych białych znaków // sprawdzenie, czy użytkownik wpisał dane // jeśli nie, to wyświetl komunikat i zakończ działanie skryptu // jeśli jednak dane są wpisane poprawnie else { // połączenie z bazą danych, NIE ZAPOMINJ USTAWIĆ WŁASNYCH DANYCH! $base=mysqli_connect('xxx','xxx','xxx','xxx'); // skonstruowanie zapytania // zwróć uwagę na operator Like - to on jest sercem całej aplikacji. Pozwala wyszukać dany ciąg w bazie danych // jak zapewne zauważyłeś, przed frazą i po niej umieszczam znaki procenta % // ten znak symbolizuje dowolny inny ciąg znaków, więc jest niezbędny do skutecznego wyszukiwania // połaczenie operatorem Or pozwala na wyszukiwanie danego ciągu zarówno w nazwie, jak i opisie produktu // UWAGA! Tutaj też nie zapomnij ustawić swoich danych! $query="Select nazwa, typ, cena, magazyn From misie Where nazwa Like '%{$_POST['phrase']}%'"; // wysłanie zapytania do bazy danych $result=mysqli_query($base,$query); // ustalenie ilości wyszukanych obiektów $obAmount=mysqli_num_rows($result); // wyswietlenie ilości wyszukanych obiektów echo '<table border="0" align="center" cellpadding="2" cellspacing="0"> <tr><td align="center" width="100"><font color="#FFCC00">NAZWA</font></td> <td align="center" width="100"><font color="#FFCC00">TYP</font></td> <td align="center" width="50"><font color="#FFCC00">CENA</font></td> <td align="center" width="70"><font color="#FFCC00">MAGAZYN</font></td></tr>'; // wyświetlenie wyników w pętli for($x=0;$x<$obAmount;$x++) { // przekształcenie danych na tablicę $row=mysqli_fetch_assoc($result); // wyświetlenie nazwy produktu <td>'.$row['typ'].'</td> <td align="center">'.$row['cena'].'</td> <td align="center">'.$row['magazyn'].'</td> </tr>'; } } // zamknięcie połączenia mysqli_close($base); // koniec aplikacji ?>
Moje problemy są takie:
1. Jak zrobić, żeby dane były wyszukiwane we wszystkich tabelach w bazie. Dopisanie po przecinku nazwy drugiej tabeli powoduje błąd.
2. A na tym mi najbardziej zależy: Czy da się zrobić (jak?) żeby skrypt wyszukiwał również na podstawie ceny, po wpisaniu do formularza kwot granicznych, żeby znalazł przedmioty o cenach pomiędzy tymi wpisanymi.
3. Nie udało mi się też wprowadzić warunku wyszukiwania wg typu (A-B-C). Żeby np. przy zaznaczonej opcji A i C znalazł tylko produkty tego typu. Nie wiem jak to zrobić.
Poproszę o jakieś porady, wskazówki...