Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Wyszukiwarka - stronicowanie wyników wyszukiwania
adrianozo
post
Post #1





Grupa: Zarejestrowani
Postów: 733
Pomógł: 4
Dołączył: 11.11.2009

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


Witam wszystkich forumowiczów.
Jako, że kończę pisać swoją stronę(została do zrobienia grafika) w wyszukiwarce chciałbym ograniczyć ilość wyświetlanych rekordów na jedną stronę.
Korzystam ze skryptu, który już mam napisany i działa przy innych plikach tutaj coś jest nie tak.
Ograniczył do wyświetlania 5 rekordów, ale pokazuje tylko pierwszą stronę. Rekordów w bazie jest 36 więc podzielić na 5=7 i trochę czyli 8 stron, a on pokazuje tylko 5 ostatnich. Nie bardzo wiem co jest źle.
Z góry dziękuje za pomoc.
Pozdrawiam (IMG:style_emoticons/default/smile.gif)

szukaj.php

  1. <?php
  2. include('functions/filtr.php');
  3. include('include/db.php');
  4. $subpage = $_GET['page'];
  5. $perPage = 5;
  6. if (!empty($_GET['subpage']))
  7. {
  8. if (is_numeric($_GET['subpage']))
  9. {
  10. $subpage = (int) $_GET['subpage'];
  11. }
  12. }
  13. if ($subpage < 1)
  14. {
  15. $subpage = 1;
  16. }
  17. $start = ($subpage - 1) * $perPage;
  18. $_POST['wynik'] = trim(filtr($_POST['wynik']));
  19. if(empty($_POST['wynik']))
  20. {
  21. echo '<font color="red"><b>Formularz został wypełniony niepoprawnie!<br /> Nie można wyświetlić wyników wyszukiwania!</b></font>';
  22. echo '<br /><br />';
  23. }
  24. else
  25. {
  26. $zapytanie = "SELECT `id`, `tresc`, `adres`, `numer` FROM home WHERE tresc LIKE '%{$_POST['wynik']}%'
  27. UNION SELECT `id`, `tresc`, `adres`, `numer` FROM kontakt WHERE tresc LIKE '%{$_POST['wynik']}%'
  28. UNION SELECT `id`, `tresc`, `adres`, `numer` FROM oferta WHERE tresc LIKE '%{$_POST['wynik']}%'
  29. UNION SELECT `id`, `tresc`, `adres`, `numer` FROM o_mnie WHERE tresc LIKE '%{$_POST['wynik']}%'
  30. UNION SELECT `id`, `tresc`, `adres`, `numer` FROM portfolio WHERE tresc LIKE '%{$_POST['wynik']}%'
  31. UNION SELECT `id`, `nazwa`, `adres`, `numer` FROM portfolio WHERE nazwa LIKE '%{$_POST['wynik']}%'
  32. UNION SELECT `id`, `technologia`, `adres`, `numer` FROM portfolio WHERE technologia LIKE '%{$_POST['wynik']}%'
  33. UNION SELECT `id`, `adres_strony`, `adres`, `numer` FROM portfolio WHERE adres_strony LIKE '%{$_POST['wynik']}%'
  34. UNION SELECT `id`, `tresc`, `adres`, `numer` FROM reklama WHERE tresc LIKE '%{$_POST['wynik']}%'
  35. UNION SELECT `id`, `tresc`, `adres`, `numer` FROM skrypty WHERE tresc LIKE '%{$_POST['wynik']}%'
  36. UNION SELECT `id`, `nazwa`, `adres`, `numer` FROM skrypty WHERE nazwa LIKE '%{$_POST['wynik']}%' ORDER BY `id` DESC LIMIT ".filtr($start).", ".filtr($perPage)."";
  37. $idzapytania = mysql_query($zapytanie);
  38. $oblicz = mysql_num_rows($idzapytania);
  39. if (!isset($_GET['id']) or empty($_GET['id']))
  40. {
  41. echo'Znaleziono: '.$oblicz.'<br /><br />';
  42. for($x=0;$x<$oblicz;$x++)
  43. {
  44. $wiersz = mysql_fetch_array($idzapytania);
  45. echo $x+1;
  46. echo '. ';
  47. $wyraz = explode(' ',substr($wiersz['tresc'], 50));
  48. $wyrazy = substr($wiersz['tresc'], 0, 50).$wyraz[0];
  49. $wyraz = $wyrazy;
  50. $array = array('','','','','','','','','[small]','[/small]',
  51. '[big]','[/big]','[p]','[/p]','
    ','
    '
    ,'','',
  52. '','','[hr=([0-9]{1,2}|100)]','[/hr]');
  53. $wyrazek = str_replace($array,'',$wyraz);
  54. echo '<a style="text-decoration: none;" href="'.$wiersz['adres'].'/'.$wiersz['numer'].'"><b>'.$wyrazek.'</b></a>';
  55. echo'<br /><br />';
  56. }
  57. }
  58. $prev = $subpage - 1;
  59. $next = $subpage + 1;
  60. $prevLink = '/szukaj/subpage/'.$prev.'';
  61. $nextLink = '/szukaj/subpage/'.$next.'';
  62. $ilosc_wierszy = mysql_num_rows($idzapytania);
  63. echo '<div style="text-align:center;">';
  64. if($subpage > 1)
  65. echo'<a style="text-decoration: none;" href="'.$prevLink.'">Poprzednia strona</a> ';
  66. $stron=round($ilosc_wierszy/$perPage);
  67. for($i=1; $i<=$stron; ++$i)
  68. {
  69. if($i==$subpage)
  70. echo '<b>'.$i.' </b>';
  71. else
  72. echo '<a style="text-decoration: none;" href="/szukaj/subpage/'.$i.'">'.$i.' </a>';
  73. }
  74. if($subpage < $stron)
  75. echo ' <a style="text-decoration: none;" href="'.$nextLink.'">Następna strona</a>';
  76. echo '</div>';
  77. }
  78. mysql_close($connect);
  79. ?>


PS. Nie pokazuje nawet napisów Następna strona, Poprzednia strona, a wpisując w adres przeglądarki /szukaj/subpage/2 wyświetla komunikat:
Formularz został wypełniony niepoprawnie!
Nie można wyświetlić wyników wyszukiwania!

Ten post edytował adrianozo 7.02.2010, 15:18:44
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: 16.10.2025 - 18:58