Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyszukiwanie jak w google!
nszablin
post 13.12.2005, 10:11:44
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 6.12.2005

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


Witam wszystkich!!
Mam problemik bo nie wiem jak zrobic w wyszukiwarce pogrubienie czesci szukanego tekstu mam na mysli cos takiego jak w google. Prosze o pomoc. Z gory dziekuje
Go to the top of the page
+Quote Post
SongoQ
post 13.12.2005, 10:18:01
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Wykorzystaj preg_replace


--------------------
Go to the top of the page
+Quote Post
mike
post 13.12.2005, 11:36:44
Post #3





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Przenoszę na php.
Go to the top of the page
+Quote Post
nszablin
post 14.12.2005, 09:00:28
Post #4





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 6.12.2005

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


Dzieki za odpowiedz ale prosze o podpowiedz na przykladzie bo nie wiem jak zastosowac preg_replace, zmienna szukana chcialbym pogrubic. Prosze o pomoc
  1. <?
  2. include ("szukanie.php");
  3. ?>
  4. <?
  5.  
  6. $db_name = "ksiazka_tel";
  7. $table_name = "osoby";
  8.  
  9. $szuk = "%".$szukaj."%";
  10.  
  11. $connection = @mysql_connect ("localhost", "ksiazka", "12345") or
  12. die ("Proba polaczenia nie powiodla sie.");
  13. $db = @mysql_select_db ($db_name, $connection) or die ("Wybor bazy danych nie powiodl sie.");
  14. if ($szukaj) {
  15. $sql = "SELECT * FROM $table_name WHERE Imie LIKE '$szuk' OR Nazwisko LIKE '$szuk' OR stanowisko LIKE '$szuk' OR jednostka LIKE '$szuk' ORDER BY Nazwisko";
  16. } else {
  17. $sql = "SELECT * FROM $table_name ORDER BY Nazwisko";
  18. }
  19. $search_result = @mysql_query($sql, $connection) or die ("Wykonanie zapytania nie powiodlo sie.");
  20. $results_number = mysql_numrows($search_result);
  21. include ("liczba_rek.php");
  22.  
  23. while ($row = mysql_fetch_array($search_result)) {
  24.  
  25. $id = $row['id'];
  26. $Imie = $row['Imie'];
  27. $Nazwisko = $row['Nazwisko'];
  28. $telefon = $row['telefon'];
  29. $telefon_2 = $row['telefon_2'];
  30. $ip = $row['ip'];
  31. $email = $row['email'];
  32. $stanowisko = $row['stanowisko'];
  33. $wydzial = $row['wydzial'];
  34. $jednostka = $row['jednostka'];
  35.  
  36. include ("szuk_form.php");
  37.  
  38. }
  39. ?>


poprawiam
---
nospor


zmienna szukana chcialbym pogrubic. Prosze o pomoc
Go to the top of the page
+Quote Post
dtb
post 14.12.2005, 09:07:57
Post #5





Grupa: Zarejestrowani
Postów: 476
Pomógł: 1
Dołączył: 5.11.2005
Skąd: Bieruń city

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


zalozmy ze slowa kluczowe masz w tablicy $array:
  1. <?php
  2. foreach ($array as as $value)
  3. {
  4. $array2[] = '<b>'.$value.'</b>';
  5. }
  6. ?>

i teraz pozamieniaj:
  1. <?php
  2. $id = str_replace ($array, $array2, $row['id']);
  3. $Imie = str_replace ($array, $array2, $row['imie']);
  4. ...
  5. ?>


EDIT: btw. nigdy w życiu nieużył bym twojego kodu. po kiego te zmienne pomocnicze,

Ten post edytował dtb 14.12.2005, 09:13:09


--------------------
Go to the top of the page
+Quote Post
nszablin
post 14.12.2005, 09:26:45
Post #6





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 6.12.2005

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


jesli nie uzylbys takiego kodu to jak Ty bys to rozwiazal. z gory dzieki za info.
dopiero zaczynam wiec nie wszystko wiem

Ten post edytował nszablin 14.12.2005, 09:33:43
Go to the top of the page
+Quote Post
dtb
post 14.12.2005, 17:11:15
Post #7





Grupa: Zarejestrowani
Postów: 476
Pomógł: 1
Dołączył: 5.11.2005
Skąd: Bieruń city

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


  1. <?php
  2. $szuk = "%".$szukaj."%"; // zle
  3. $szukaj = "%".$szukaj."%"; // dobrze (po co tworzyc nowe zmienne)
  4. ?>


  1. <?php
  2. $search_result = @mysql_query($sql, $connection) //zle
  3. $sql = mysql_query($sql, $connection) // dobrze (to co wyżej)
  4. ?>


  1. <?php
  2. $id = $row['id']; // to samo co wyzej
  3. $Imie = $row['Imie'];
  4. $Nazwisko = $row['Nazwisko'];
  5. $telefon = $row['telefon'];
  6. $telefon_2 = $row['telefon_2'];
  7. $ip = $row['ip'];
  8. $email = $row['email'];
  9. $stanowisko = $row['stanowisko'];
  10. $wydzial = $row['wydzial'];
  11. $jednostka = $row['jednostka'];
  12. ?>


Kod
?> // jaki to ma sens?
<?


pozamieniaj " na '

po co te 'małpy'. wylacz raportowanie bledow (nie beda konieczne @ i bezp. sie zwiekszy)

zmierz czas (microtime" title="Zobacz w manualu php" target="_manual) przed i po zamianie i powiedz o efektach

Ten post edytował dtb 14.12.2005, 17:15:42


--------------------
Go to the top of the page
+Quote Post
nszablin
post 15.12.2005, 08:22:03
Post #8





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 6.12.2005

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


Zrobilem tak jak mowiles ale nie wiem jak zastosowac to co napisales wczesniej "foreach ...."
  1. <?
  2. include ('szukanie.php');
  3.  
  4. $db_name = 'ksiazka_tel';
  5. $table_name = 'osoby';
  6.  
  7. $szukaj = '%'.$szukaj.'%';
  8.  
  9.  
  10. $connection = mysql_connect ('localhost', 'ksiazka', '12345');
  11. $db = mysql_select_db ($db_name, $connection);
  12.  
  13. if ($szukaj) {
  14. $sql = "SELECT * FROM $table_name WHERE Imie LIKE '$szukaj' OR Nazwisko LIKE '$szukaj' OR stanowisko LIKE '$szukaj' OR jednostka LIKE '$szukaj' ORDER BY Nazwisko";
  15. }
  16. else {
  17. $sql = "SELECT * FROM $table_name ORDER BY Nazwisko";
  18. }
  19.  
  20. $sql = mysql_query($sql, $connection);
  21.  
  22. $results_number = mysql_numrows($sql);
  23.  
  24. include ('liczba_rek.php');
  25.  
  26. while ($row = mysql_fetch_array($sql)) {
  27.  
  28. $id = $row['id'];
  29. $Imie = $row['Imie'];
  30. $Nazwisko = $row['Nazwisko'];
  31. $telefon = $row['telefon'];
  32. $telefon_2 = $row['telefon_2'];
  33. $ip = $row['ip'];
  34. $email = $row['email'];
  35. $stanowisko = $row['stanowisko'];
  36. $wydzial = $row['wydzial'];
  37. $jednostka = $row['jednostka'];
  38.  
  39. include ('szuk_form.php');
  40.  
  41. }
  42. ?>
Go to the top of the page
+Quote Post
dtb
post 15.12.2005, 19:06:46
Post #9





Grupa: Zarejestrowani
Postów: 476
Pomógł: 1
Dołączył: 5.11.2005
Skąd: Bieruń city

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


pozmieniaj w while $row['X'] na str_replace ($szukaj, '<b>'.$szukaj.'</b>', $row['X']);


--------------------
Go to the top of the page
+Quote Post
nszablin
post 16.12.2005, 08:24:19
Post #10





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 6.12.2005

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


Zrobiłem tak jak powiedziales ale niestety to nie dziala i naprawde nie wiem dlaczego

zmienilem

  1. <?php
  2. $Nazwisko = $row['Nazwisko'];
  3. ?>


na

  1. <?php
  2. $Nazwisko = str_replace ($szukaj, '<b>'.$szukaj.'</b>', $row['Nazwisko']);
  3. ?>


ale w wyniku $Nazwisko wyświetla sie bez zmian moze masz jakis inny pomysl. Z gory wielkie dzieki za pomoc.
Go to the top of the page
+Quote Post
dtb
post 16.12.2005, 08:38:24
Post #11





Grupa: Zarejestrowani
Postów: 476
Pomógł: 1
Dołączył: 5.11.2005
Skąd: Bieruń city

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


wiem co jest zle:
  1. <?php
  2. $Nazwisko = str_replace (substr($szukaj,1,strlen($szukaj)-1), '<b>'.substr($szukaj,1,strlen($szukaj)-1).'</b>', $row['Nazwisko']);
  3. ?>


jeżeli nie zadziala to daj zamiast -1 -2 (ale chyba tak jest dobrze)


--------------------
Go to the top of the page
+Quote Post
nszablin
post 16.12.2005, 08:57:08
Post #12





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 6.12.2005

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


Zrobilem tak jak powiedziales

  1. <?php
  2. $Nazwisko = str_replace (substr($szukaj,1,strlen($szukaj)-2), '<b>'.substr($szukaj,1,strlen($szukaj)-2).'</b>', $row['Nazwisko']);
  3. ?>


nie zadzialalo wiec zmianilem -1 na -2 ale to tez nic nie dalo.
Go to the top of the page
+Quote Post
qbuz
post 16.12.2005, 10:49:55
Post #13





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 4.02.2004

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


1. a co masz dokladnie w zmiennej $szukaj ?
2. beda problemy, przy roznej wielkosci znakow (np. wyszukiwany tekst to "samolot" a ty w bazie masz "Samolot" (z duzej litery)), wiec zamiast str_replace bedzie trzeba uzyc np. eregi_replace lub str_ireplace (ale to dopiero od php 5)
Go to the top of the page
+Quote Post
nszablin
post 16.12.2005, 13:20:33
Post #14





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 6.12.2005

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


Na poczatku jest jest pole w ktorym wpisuje szukana wartosc

  1. <td height="56"></td>
  2. <td colspan="6" valign="top"><form method="get" action="szukanie.php">
  3. <table width="311" border="0" align="center">
  4. <!--DWLayoutTable-->
  5. <tr>
  6. <td>
  7. <div align="center">
  8. <input name="szukaj" type="text" class="style1" size="50">
  9. </div></td>
  10. </tr>
  11. <tr>
  12. <td><div align="center">
  13. <input name="Submit" type="submit" class="linki" value="Szukaj">
  14. </div></td>
  15. </tr>
  16. </table>
  17. </form></td>


szukanie.php jest tym co podalem wczesniej.
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: 14.08.2025 - 12:59