Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [sql] Wyszukiwanie
asdcc
post 20.12.2007, 16:24:58
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 20.12.2007

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


Witam. Zacząłem interesować się PHP. Napisałem wyszukiwarkę.

  1. <?php
  2. $query = "SELECT * FROM news WHERE tytul LIKE '%$searchterms%'";
  3. ?>


To jest kod wyszukujący z bazy podane słowa, ale wyszukuje tylko w tytul. Chcialbym, zeby wyszukiwalo takze w: tresc, tresc_cd i kom. Próbowałem wszelkich sposobów, pogooglowalem, poszukalem na forum, ale niestety nic. Proszę o pomoc.

Ten post edytował JaRoPHP 20.12.2007, 20:55:44
Powód edycji: Dodanie tagu do tematu.
Go to the top of the page
+Quote Post
fotex
post 20.12.2007, 16:31:18
Post #2





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 8.12.2007

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


  1. <?php
  2.  
  3. if (!$_POST[podstawaszukania] || !$_POST[haslo] ) 
  4. { 
  5. print "Nie zostało wpisane żadne hasło do wyszukiwarki";
  6. exit; 
  7.  } 
  8.  
  9. $podstawaszukania = $_POST[podstawaszukania]; 
  10.  $haslo= $_POST[haslo];
  11. @$db = mysql_pconnect("localhost", "myszcz01_aukcja", "komiszke");
  12. if (!$db) 
  13.  { 
  14. print "wystąpił błąd w połączeniu"; 
  15. exit; 
  16.  } 
  17.  
  18. mysql_select_db("myszcz01_aukcja"); 
  19.  
  20. $query = "select * from lance_jobs where ".$podstawaszukania." like '%".$haslo."%'"; 
  21. $result = mysql_query($query); 
  22.  $num_results = mysql_num_rows($result); 
  23.  print "<a href='index.php'>Wstecz</a>";
  24. print "<center><p><font size='5'>Ilość znalezionych: ".$num_results."</font></p></center>"; 
  25. print "<center><table width='800' border='0'>";
  26. print "<tr bgcolor='#E1E1E1'><td width='100'><font color='red'>Tytuł</font></td>";
  27. print "<td width='157'><font color='red'>Wojew&oacute;dztwo</font></td>";
  28. print "<td width='221'><font color='red'>Opis</font></td></tr>";
  29. for ($i=0; $i <$num_results; $i++) { 
  30.  $row = mysql_fetch_array($result); 
  31. print "<tr>";
  32. print "<td style='border:none;'>";
  33. print stripslashes($row ["job_title"]);
  34. print "</td>";
  35. print "<td style='border:none;'>";
  36. print stripslashes($row["job_country"]);
  37. print "</td>";
  38. print "<td style='border:none;'>";
  39. print stripslashes($row["job_desc"]);
  40. print "</td></center>";
  41. }
  42. ?>

to jest przykład jaki zastosowałem u siebie.Wyszukuje wg różnych kryteriów


--------------------
Pierwsze polskie forum wsparcia dla skryptu Dolphin
Go to the top of the page
+Quote Post
asdcc
post 20.12.2007, 16:35:14
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 20.12.2007

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


Dobrze, ale jak ktoś zaznaczy: Wszystkie? To jak mam to wpisać? Własnie tego nie wiem. Czy np.


  1. <?php
  2. $query = "SELECT * FROM news WHERE tytul OR tresc LIKE '%$searchterms%'"
  3. ?>


Tego nie wiem. Jak tak wpisuje, nieststye nie pokazuje nic, ani błędu, ani wyników, chociaż one są.
Go to the top of the page
+Quote Post
fotex
post 20.12.2007, 16:36:32
Post #4





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 8.12.2007

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


Podaj strukture bazy, bo tak w ciemno to ciezko okreslic:)Ps: to jest cały kod skryptu?

Ten post edytował fotex 20.12.2007, 16:39:03


--------------------
Pierwsze polskie forum wsparcia dla skryptu Dolphin
Go to the top of the page
+Quote Post
asdcc
post 20.12.2007, 16:51:43
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 20.12.2007

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


  1. <?
  2.  
  3.  
  4.  
  5. $searchterms = $_POST['searchterms'];
  6.  
  7. $query = "SELECT * FROM news WHERE tytul LIKE '%$searchterms%'";
  8. $result = mysql_query($query);
  9. while($r = mysql_fetch_array($result)){
  10.  
  11. echo''.$r['tresc'].'';
  12.  
  13. }
  14.  
  15.  
  16.  
  17.  
  18. ?>


Oto cały kod. Jest jeszcze pole szukania. A wyżej łączy się z bazą. W tym momencie wyszukuje tylko w kolumnie tytuł. A ja chce, zeby i w tresc i tresc_cd smile.gif
Go to the top of the page
+Quote Post
fotex
post 20.12.2007, 17:11:38
Post #6





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 8.12.2007

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


  1. <?php
  2. $searchterms = $_POST['searchterms'];
  3.  
  4. $query = &#092;"SELECT * FROM news WHERE tresc_cd OR tresc LIKE '%$searchterms%'\";
  5. $result = mysql_query($query);
  6. while($r = mysql_fetch_array($result)){
  7.  
  8. echo''.$r['tresc'].'';
  9. echo''.$r['tresc_cd'].'';
  10.  
  11. }
  12. ?>



Takie rozwiązanie ci nie działa?

Ten post edytował fotex 20.12.2007, 17:13:06


--------------------
Pierwsze polskie forum wsparcia dla skryptu Dolphin
Go to the top of the page
+Quote Post
asdcc
post 20.12.2007, 17:15:00
Post #7





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 20.12.2007

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


Własnie nie.
Go to the top of the page
+Quote Post
phpion
post 20.12.2007, 17:19:52
Post #8





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(fotex @ 20.12.2007, 19:11:38 ) *
]
Takie rozwiązanie ci nie działa?

A tobie działa? Nie ma prawa.

  1. <?php
  2. $query = "SELECT * FROM news WHERE tytul LIKE '%$searchterms%' OR tresc_cd LIKE '%$searchterms%'";
  3. ?>
Go to the top of the page
+Quote Post
fotex
post 20.12.2007, 17:22:34
Post #9





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 8.12.2007

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


No właśnie teraz zdałem sobie sprawe po twoim poście że wprowadzam go w błąd:)Oczywiście phpion.com ma racje


--------------------
Pierwsze polskie forum wsparcia dla skryptu Dolphin
Go to the top of the page
+Quote Post
asdcc
post 22.12.2007, 12:43:14
Post #10





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 20.12.2007

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


Dziękuję Wam bardzo. Działa smile.gif

Witam. Mam do Was jeszcze jedno pytanie, a nie będę zaśmiecał forum kolejnym tematem. Mianowicie: czy można wyciągnąć z bazy tylko pierwsze 40 liter danego pola? Np tresc:

  1. <?php
  2. $zapytanie = "SELECT tresc FROM news";
  3. ?>


Co tu trzeba by dodać, aby wyciągane były tylko pierwsze 40 znaków TRESC. I czy to w ogóle możliwe.

Z góry dziękuję za odpowiedź, pozdrawiam.
Go to the top of the page
+Quote Post
drPayton
post 22.12.2007, 22:25:53
Post #11





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


funkcja LEFT(), czyli w Twoim przykładzie:
  1. <?php
  2. $zapytanie = "SELECT LEFT(`tresc`, 40) FROM `news`";
  3. ?>
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 23.06.2025 - 22:42