Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX][MySQL][PHP] Przerobienie wyszukiwarki korzystającej z plików TXT na wyszukiwarkę MySQL, jak ustawić szukanie w bazie danych MySQL zamiast w plikach tekstowych
szymek001
post
Post #1





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 21.09.2005

Ostrzeżenie: (10%)
X----


Witam, znalazłem dosyć ciekawą wyszukiwarkę ajax, różne opcje są dostępne, mnie interesuje nr.3: http://gajdaw.pl/ajax/ajax-wyszukiwarka/examples.html
demo jest na stronie: http://danowski.pl/ (po prawej). Jednak w plikach które są do pobrania skrypt korzysta z bazy tekstowej.

Wydaje mi sie, że trzeba zmienić plik funkcje.inc.php:
  1. <?php
  2.  
  3. function podaj_dane($ANazwapliku)
  4. {
  5. $tmp = array();
  6. $p = file($ANazwapliku);
  7. $pc = count($p);
  8. $tmp['ile'] = $pc;
  9.  
  10. $tytuly = array();
  11. $nazwyplikow = array();
  12.  
  13. for ($i = 0; $i < $pc; $i++) {
  14. $e = explode('|', trim($p[$i]));
  15. $tytuly[$i] = $e[0];
  16. $nazwyplikow[$i] = $e[1];
  17. }
  18.  
  19. $tmp['nazwyplikow'] = $nazwyplikow;
  20. $tmp['tytuly'] = $tytuly;
  21.  
  22. return $tmp;
  23. }
  24.  
  25.  
  26. function wyniki_szukaj($ASzukaj, $ADane, $AMax = false)
  27. {
  28. $dane = array();
  29. $dane[0] = array();
  30. $dane[1] = array();
  31. $dane[2] = array();
  32.  
  33. for ($i = 0; $i < $ADane['ile']; $i++) {
  34. $t = file_get_contents('txt/' . $ADane['nazwyplikow'][$i]);
  35.  
  36. //tytul
  37. $dane[0][$i] = $ADane['tytuly'][$i];
  38.  
  39. //id
  40. $dane[1][$i] = $i + 1;
  41.  
  42. //liczba wystapien slowa
  43. $dane[2][$i] = substr_count($t, $ASzukaj);
  44. }
  45. $dane[2], SORT_DESC, SORT_NUMERIC,
  46. $dane[0], SORT_ASC, SORT_STRING,
  47. $dane[1]
  48. );
  49.  
  50. if ($dane[2][0] == 0) {
  51. //nic nie znaleziono
  52.  
  53. return false;
  54.  
  55. } else {
  56.  
  57. if ($AMax === false) {
  58. //zwracamy wszystkie wyniki
  59.  
  60. for ($i = 0; ($i < $ADane['ile']) && ($dane[2][$i] > 0); $i++);
  61.  
  62. $dane['ile'] = $i;
  63. $dane['pokazpelnalista'] = false;
  64.  
  65. $dane[0] = array_slice($dane[0], 0, $i, true);
  66. $dane[1] = array_slice($dane[1], 0, $i, true);
  67. $dane[2] = array_slice($dane[2], 0, $i, true);
  68.  
  69.  
  70. } else {
  71.  
  72.  
  73. if ($dane[2][$AMax] > 0) {
  74. //zwracamy co najwyżej Max wyników
  75. //znaleziono więcej niż Max
  76.  
  77. $dane['ile'] = $AMax;
  78. $dane['pokazpelnalista'] = true;
  79.  
  80. $dane[0] = array_slice($dane[0], 0, $AMax, true);
  81. $dane[1] = array_slice($dane[1], 0, $AMax, true);
  82. $dane[2] = array_slice($dane[2], 0, $AMax, true);
  83.  
  84.  
  85. } else {
  86. //zwracamy co najwyżej Max wyników
  87. //znaleziono mniej niż Max
  88.  
  89.  
  90. for ($i = 0; ($i < $ADane['ile']) && ($dane[2][$i] > 0); $i++);
  91.  
  92. $dane['ile'] = $i;
  93. $dane['pokazpelnalista'] = false;
  94.  
  95. $dane[0] = array_slice($dane[0], 0, $i, true);
  96. $dane[1] = array_slice($dane[1], 0, $i, true);
  97. $dane[2] = array_slice($dane[2], 0, $i, true);
  98.  
  99. }
  100.  
  101. }
  102.  
  103. return $dane;
  104.  
  105. }
  106.  
  107. }
  108.  
  109. function wyniki_html($AWyniki, $ASzukaj)
  110. {
  111. if ($AWyniki) {
  112.  
  113.  
  114. $wynik = '<ol>';
  115. for ($i = 0; $i < $AWyniki['ile']; $i++) {
  116. $wynik .=
  117. '<li><a href="index.php?id=2&amp;id2=' .
  118. $AWyniki[1][$i] .
  119. '">' .
  120. $AWyniki[0][$i] .
  121. '</a> (' .
  122. $AWyniki[2][$i] .
  123. ')' .
  124. '</li>';
  125. }
  126. $wynik .= '</ol>';
  127.  
  128. if ($AWyniki['pokazpelnalista']) {
  129. $wynik .=
  130. '</ol><a id="pelnalista" href="index.php?id=3&amp;szukaj=' .
  131. $ASzukaj .
  132. '">pełna lista wyników</a>';
  133. }
  134.  
  135. } else {
  136. $wynik = 'Nic nie znaleziono!';
  137. }
  138.  
  139. return $wynik;
  140.  
  141. }
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150. ?>


i server.php:
  1. <?php
  2.  
  3. require_once 'walidacja.inc.php';
  4. require_once 'funkcje.inc.php';
  5.  
  6. $dane = podaj_dane('00index.log');
  7.  
  8. if (
  9. isset($_GET['co']) &&
  10. (strlen($_GET['co']) < 20) &&
  11. preg_match('/^[a-z]+$/', $_GET['co'])
  12. ) {
  13. header('Content-Type: text/html; charset=utf-8');
  14.  
  15. $w = wyniki_szukaj($_GET['co'], $dane, 5);
  16. echo wyniki_html($w, $_GET['co']);
  17.  
  18. } else {
  19. header('HTTP/1.x 404 Not Found');
  20. }
  21.  
  22. ?>


Nie potrafię jednak przerobić tego by podpiąć pod to MySQL, dlatego proszę o jakieś sugestie.
Go to the top of the page
+Quote Post

Posty w temacie


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: 17.10.2025 - 09:53