Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][HTML][PHP]Prosta wyszukiwarka
Forum PHP.pl > Forum > Przedszkole
user767
  1. <form method="post" action="wyszukiwarka.php">
  2. <br />Zapach:<br /><input name="Znajdz" type="text" size="45" maxlength="40" /><br />
  3. <br /><br />
  4. <input type="submit" name="wyslij" value="Wyślij ?" class="button" />
  5. <br />
  6. </form>


  1. <?php
  2. $znajdz = $_POST['znajdz'];
  3.  
  4. mysql_connect(localhost, root, krasnal) or die("Błąd w połączeniu z serwerem!");
  5.  
  6. mysql_select_db("baza") or die("Błąd w połączeniu z bazą danych!");
  7.  
  8. $zapytanie = "SELECT * FROM zapachy WHERE opis LIKE '%$znajdz%' ";
  9. $idzapytania = mysql_query($zapytanie);
  10.  
  11. echo "<table>";
  12. while ($wiersz = mysql_fetch_assoc($idzapytania))
  13. {
  14. echo "<tr>
  15. <td>".$wiersz['id']."</td>
  16. <td>".$wiersz['nazwa']."</td>
  17. <td>".$wiersz['opis']."</td>
  18. <td>".$wiersz['cena']."</td>
  19. <td>".$wiersz['rodzaj']."</td>
  20. </tr>";
  21. }
  22. echo "<table>";
  23.  
  24. ?>


adrianozo
I co w związku z tym?
user767
Chodzi mi o to, żeby szukało w taki sposób, żeby wyszukiwało nazwy podobne, tzn. jak ktoś wpisze cytryna, żeby odnalazło cytryny, cytrynie.
Dapi
Na mój gust, to nie będzie takie proste.
Ja bym zrobił sprawdzanie ile wpisano znaków, i jeśli jest więcej niż dajmy na to 6, to wycinanie ostatnich 3 i szukanie tego co zostanie.

W ten sposób po wpisaniu cytryna wyszuka ci rekordy zawierające "cytr" czyli cytryna, cytrynie, cytrynowy, cytrynek, itd.
Klycior
Co do rozwiązania od Dapi, wydaje mi się najlepsze.

A ponadto jest prosta funkcja która to spełni: substr().
Proszę nawet ładnie do wzoru dałem:
  1. $rest = substr("Ładny przykład ucinania 3 liter ostatnich", 0, -3); // Ładny przykład ucinania 3 liter ostatn
user767
Jak to zapisać przy przechwytywaniu zmiennej
  1. $znajdz = $_POST['Znajdz'];

?
Klycior
Teraz jeszcze przypomniało mi się że to nie takie proste bo co będzie gdy ktoś będzie chciał wyszukać słowa auto ?
To zostanie literka a.

A co do posta wyżej to powinno zadziałać, bo chyba o to Ci chodzi;
  1.  
  2. $znajdz = $_POST['Znajdz'];
  3. $rest = substr($znajdz, 0, -3); // tniemy 3 ostatnie literki
  4. echo $rest; // no i wyswietlamy to co nam wyszło


user767
A gdyby dać if na policzenie słów?
Klycior
Rozwiązań jest wiele winksmiley.jpg

To i też dobre winksmiley.jpg

Dapi
Cytat
Ja bym zrobił sprawdzanie ile wpisano znaków, i jeśli jest więcej niż dajmy na to 6, to wycinanie ostatnich 3 i szukanie tego co zostanie.


O tym właśnie pisałem smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.