Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Przeszukiwanie bazy danych
Forum PHP.pl > Forum > Przedszkole
kakkarot
Witam, kompletnie raczkuję w tym temacie a mam pewien problem. Posiadam skrypt a w nim opcję znajdź. Chcę znaleźć dany obiekt ale wyszukuje mi tylko po tytule. Jeśli wpiszę np numer telefonu czy adres, który wiem, że na pewno znajduje się w bazie, nic mi nie pokazuje. Znalezłem kod który odpowiada za wyszukiwanie i jeśli dobrze go rozumiem to wyszukuje on tylko w tabeli CONTENT i w kolumnie NAME ? Jak przerobić tą funkcję aby nie odnosiła się tylko do kolumny NAME ale do całej tabeli?
  1. <?php
  2.  
  3. if(!empty($_GET['co'])) {
  4.  
  5. $r=$db->query('SELECT * FROM znajdz WHERE name = "'.check_string($_GET['co']).'" LIMIT 20;');
  6. if($m=$r->fetch()) {
  7. // JEŚLI JUŻ JEST W BAZIE NIC NIE RÓB
  8. } else {
  9. $f=$db->query('SELECT * FROM content WHERE (name LIKE "%'.check_string($_GET['co']).'%" OR source LIKE "%'.check_string($_GET['co']).'%" OR text LIKE "%'.check_string($_GET['co']).'%") ;');
  10. if($l=$f->fetch()) {
  11.  
  12. $r=$db->exec('INSERT INTO znajdz (name) VALUES ("'.check_string($_GET['co']).'") ;');
  13. }
  14. }
  15.  
  16. $r=$db->query('SELECT COUNT(*) FROM znajdz;');
  17. if($m=$r->fetch()) {
  18. if($m[0]>100) {
  19. $ile = $m[0]-100;
  20. $r=$db->exec('DELETE FROM znajdz ORDER BY c_id ASC LIMIT '.$ile.';');
  21. }
  22. }
  23.  
  24.  
  25. }
  26.  
  27. ?>
b4rt3kk
Czym jest tabela content i czym jest tabela znajdz? W której chcesz wyszukiwać? W uproszczeniu składnia zapytania SQL wygląda tak:

  1. SELECT * FROM tabela WHERE komorka1 LIKE '%szukaj tego%' OR komorka2 LIKE '%szukaj tego%' OR komorka3 LIKE '%szukaj tego%'


By szukać w konkretnej kolumnie dodajesz po prostu kolejny warunek OR nazwa_kolumny LIKE 'szukany_wyraz'. Możesz dodać %, który zastępuje dowolny ciąg znaków czyli np. %bar będzie pasowało do foo bar, foobar, a także bar. Dodanie % na końcu, np. foo% działa analogicznie.
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.