Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql][php] Wyszukiwarka + Stronicowanie, błędy po wyszukaniu rekordu
funky_beat
post
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 24.05.2007
Skąd: Bełchatów

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


Witam,

Storzyłem skrypt do wyświetlania rekordów z tabeli USERZY (id, Nazwisko).
1.Skrypt poprawnie wyświetla rekordy i tworzy linki do następnych stron - stronicowanie działa.
2.Skrypt zaopatrzyłem w prostą wyszukiwarkę, która również działa, jednak po wyszukaniu rekordów stronicowanie się rozsypuje, tj. wyświetlany jest tylko link do pierwszej strony, który po naciśnięciu wyświetla wszystkie rekordy, czyli wraca do punktu 1..

Oto skrypt:

  1. <?php
  2.  
  3. require_once ('baza.php');
  4.  
  5.  
  6. $sql = "SET CHARSET latin2";
  7.  
  8.  
  9. $site = intval($_REQUEST['site']);
  10.  
  11. $start=$site*2;
  12.  
  13. $a=0;
  14. //for($a=0;$a<($ile/2);$a++)
  15. ?>
  16.  
  17.  
  18.  
  19. <form action="0porcjowanie.php?site=<?php echo $a?>" method="post">
  20. <fieldset>
  21.  
  22. </br><p>Nazwisko: <input type="text" name="Nazwisko" value="<?php if (isset($_POST['Nazwisko'])) echo $_POST['Nazwisko']; ?>" /><input type="submit" name="submit" value="Szukaj" />
  23.  
  24. </fieldset>
  25.  
  26.  
  27.  
  28. </form>
  29.  
  30. <?php
  31.  
  32. if (isset($_POST['submit'])) { 
  33. function escape_data ($data) {
  34. global $dbc; 
  35. if (ini_get('magic_quotes_gpc')) {
  36. $data = stripslashes($data);
  37. }
  38. return mysql_real_escape_string($data, $dbc);
  39. } 
  40. $message = NULL;
  41.  
  42. if (empty($_POST['Nazwisko'])) {
  43. $n = FALSE;
  44. } else {
  45. $n = escape_data($_POST['Nazwisko']);
  46. }
  47.  
  48.  
  49. $licz = mysql_query ("SELECT Nazwisko FROM userzy WHERE Nazwisko LIKE '%$n%' ORDER BY Nazwisko LIMIT $start,2") or die ("Error SQL: ");
  50. $ile = mysql_num_rows($licz);
  51.  
  52.  
  53.  
  54. $query = mysql_query("SELECT id, Nazwisko FROM userzy WHERE Nazwisko LIKE '%$n%' ORDER BY Nazwisko LIMIT $start,2") or die ("Error SQL: ");
  55.  
  56. echo '<table>
  57. <tr><td>Nazwisko</td></tr>';
  58.  
  59. while ($row = mysql_fetch_array($query)) {
  60.  
  61. echo '<tr><td>'.$row[1].'</td></tr>';
  62. }
  63.  
  64. echo '</table>';
  65.  
  66.  
  67. echo '<p>kolejne strony:';
  68. for($a=0;$a<($ile/2);$a++)
  69. echo '<a href=0porcjowanie.php?site='.$a.'>|'.$a.'|</a>';
  70. if ($a % 2 == 1) echo '<br />';
  71.  
  72.  
  73.  
  74. } else {
  75.  
  76.  
  77. $licz = mysql_query ("SELECT * FROM userzy");
  78. $ile = mysql_num_rows($licz);
  79.  
  80.  
  81. $query = mysql_query("SELECT id, Nazwisko FROM userzy ORDER BY Nazwisko LIMIT $start,2") or die ("Error SQL: ");
  82.  
  83. echo '<table>
  84. <tr><td>Nazwisko</td></tr>';
  85.  
  86. while ($row = mysql_fetch_array($query)) {
  87.  
  88. echo '<tr><td>'.$row[1].'</td>tr>';
  89. }
  90.  
  91. echo '</table>';
  92.  
  93.  
  94.  
  95. echo '<p>kolejne strony:';
  96. for($a=0;$a<($ile/2);$a++)
  97. echo '<a href=0porcjowanie.php?site='.$a.'>|'.$a.'|</a>';
  98. if ($a % 2 == 1) echo '<br />';
  99. }
  100.  
  101.  ?>



Z góry dziękuje za pomoc w rozwiązaniu problemu
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
cornholio666
post
Post #2





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

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


Może poszukaj na forum klasy Pager autorstwa nospor'a
Go to the top of the page
+Quote Post
funky_beat
post
Post #3





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 24.05.2007
Skąd: Bełchatów

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


tak wiem że można wykorzystać te klase, ale czy bez niej juz sie nie da?
Go to the top of the page
+Quote Post
cornholio666
post
Post #4





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

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


Da się:

http://phpedia.pl/wiki.php?title=Stronicowanie

http://www.forumweb.pl/viewtopic.php?t=26480

poczytaj
Go to the top of the page
+Quote Post
funky_beat
post
Post #5





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 24.05.2007
Skąd: Bełchatów

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


dowiedziałem się że skrypt gubi wyszukiwaną frazę i należy ją przekazywać metodą GET, nie wiem jednak jak (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
Fishu
post
Post #6





Grupa: Zarejestrowani
Postów: 192
Pomógł: 13
Dołączył: 16.11.2007
Skąd: Żory

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


To proste wystarczy w formularzu zmień na metode GET w '<form action="jakisplik.php" method="get">'.No i po wysłaniu formularza (przyjmijmy że pole text w formularzu miało 'name="q" ' to teraz w tym pliku do którego wysłaliśmy formularz będzie w adresie jakisplik.php?q=WYRAZ.Widzisz jakie to proste, jak nie rozumiesz to poczytaj o odbieraniu danych z formularza.A jeżeli chodzi ci o co innego to pisz (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
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: 22.08.2025 - 15:16