Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Wyszukiwarka co to umie wyświetlać dane z bazy SQL. Proszę o pomoc
APW
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 17.11.2009

Ostrzeżenie: (0%)
-----


Witam, próbuję uruchomić wyszukiwarkę bazy SQL. Ponieważ znam tylko HTML, mam ogromne problemy z dopasowaniem odnalezionego w internecie skryptu do własnych potrzeb. Dużo skorzystałem z zawartych na tym forum różnych informacji, ale zatrzymałem się w pewnym momencie i nie wiem jak rozwikłać ową zagwozdkę. Moja baza składa się z kilku tabel (na razie dwóch o nazwach misie i lale - poniżej), z których za pomocą przedstawionego niżej formularza chciałbym wyszukiwać konkretne dane.
(IMG:http://apwarsz.home.pl/pub/tabele.jpg)

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>


Tutaj kod skryptu PHP, który szuka i wyświetla
  1. <?php
  2. // program wyszukiwarki - search.php
  3. // wyświetlenie nagłówka
  4. echo'<h2>Wyniki wyszukiwania</h2>';
  5. // usunięcie niepotrzebnych białych znaków
  6. $_POST['phrase']=trim($_POST['phrase']);
  7. // sprawdzenie, czy użytkownik wpisał dane
  8. if(empty($_POST['phrase']))
  9. // jeśli nie, to wyświetl komunikat i zakończ działanie skryptu
  10. die('Formularz wypełniony niepoprawnie! Nie można wyświetlić wyników wyszukiwania!');
  11. // jeśli jednak dane są wpisane poprawnie
  12. else
  13. {
  14. // połączenie z bazą danych, NIE ZAPOMINJ USTAWIĆ WŁASNYCH DANYCH!
  15. $base=mysqli_connect('xxx','xxx','xxx','xxx');
  16. // skonstruowanie zapytania
  17. // zwróć uwagę na operator Like - to on jest sercem całej aplikacji. Pozwala wyszukać dany ciąg w bazie danych
  18. // jak zapewne zauważyłeś, przed frazą i po niej umieszczam znaki procenta %
  19. // ten znak symbolizuje dowolny inny ciąg znaków, więc jest niezbędny do skutecznego wyszukiwania
  20. // połaczenie operatorem Or pozwala na wyszukiwanie danego ciągu zarówno w nazwie, jak i opisie produktu
  21. // UWAGA! Tutaj też nie zapomnij ustawić swoich danych!
  22. $query="Select nazwa, typ, cena, magazyn From misie Where nazwa Like '%{$_POST['phrase']}%'";
  23. // wysłanie zapytania do bazy danych
  24. $result=mysqli_query($base,$query);
  25. // ustalenie ilości wyszukanych obiektów
  26. $obAmount=mysqli_num_rows($result);
  27. // wyswietlenie ilości wyszukanych obiektów
  28. echo'Znaleziono: '.$obAmount.'<br /><br />';
  29. echo '<table border="0" align="center" cellpadding="2" cellspacing="0">
  30. <tr><td align="center" width="100"><font color="#FFCC00">NAZWA</font></td>
  31. <td align="center" width="100"><font color="#FFCC00">TYP</font></td>
  32. <td align="center" width="50"><font color="#FFCC00">CENA</font></td>
  33. <td align="center" width="70"><font color="#FFCC00">MAGAZYN</font></td></tr>';
  34. // wyświetlenie wyników w pętli
  35. for($x=0;$x<$obAmount;$x++)
  36. {
  37. // przekształcenie danych na tablicę
  38. $row=mysqli_fetch_assoc($result);
  39.  
  40. // wyświetlenie nazwy produktu
  41. echo '<tr><td>'.$row['nazwa'].'</td>
  42. <td>'.$row['typ'].'</td>
  43. <td align="center">'.$row['cena'].'</td>
  44. <td align="center">'.$row['magazyn'].'</td>
  45. </tr>';
  46. }
  47. }
  48. // zamknięcie połączenia
  49. mysqli_close($base);
  50. echo '</table>';
  51. // koniec aplikacji
  52. ?>

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...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Vardamir
post
Post #2





Grupa: Zarejestrowani
Postów: 14
Pomógł: 2
Dołączył: 27.10.2009
Skąd: Kalwaria Zebrzydowska / Kraków

Ostrzeżenie: (0%)
-----


kropki przed $row[1] i $row[5]
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.04.2026 - 14:17