Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Przeszukiwanie bazy danych
kakkarot
post
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 7.04.2010

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


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





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


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.
Go to the top of the page
+Quote Post

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: 25.08.2025 - 18:15