Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] wynik wyszukiwania
!*!
post
Post #1





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Zapytanie i stronicowanie:
  1. <?php
  2. require_once("connect.php");
  3.  
  4. $wynik = $_POST['wyszukaj'];
  5.  
  6.  
  7. if (isset($_POST['wyszukaj'])) {
  8. $_SESSION['wyszukaj'] = $_POST['wyszukaj'];
  9. }
  10.  
  11. function pages ($first, $countpages, $nrpages, $zap) {
  12. if($countpages > $nrpages ){
  13. $countpages = $countpages/$nrpages; 
  14. $ile = ceil($countpages); 
  15. if ($first!=0) echo("<a href=\"".$_SERVER['PHP_SELF']."?wyszukiwarka.php&first=" . ($first-$nrpages) . "\" title=\"Poprzednie\">Poprzednie</a> "); 
  16.  
  17. for ($i=1;$i<=$ile;$i++) 
  18. { 
  19. echo("<a href=\"".$_SERVER['PHP_SELF']."?wyszukiwarka.php&first=" . ($i*$nrpages-$nrpages) . "\" title=\"" . ($i*$nrpages-($nrpages-1)) . "-" . ($i*$nrpages) ."\">");
  20. if ( $countpages > 6 ) {if ($first==($i*$nrpages-$nrpages)) 
  21.  { 
  22. echo ("<b>|" . $i . "|</b></a> "); $akt=$i-1; } else { print ("|" . $i . "|</a> "); 
  23.  } 
  24. } 
  25.  
  26. else {
  27. if ($first==($i*$nrpages-$nrpages)) 
  28.  { 
  29. echo ("<b>|" . $i . "|</b></a> "); $akt=$i; } else { print ("|" . $i . "|</a> ");  
  30.  } 
  31. }
  32. } 
  33. if ($akt<$ile) echo ("<a href=\"".$_SERVER['PHP_SELF']."?wyszukiwarka.php&first=" . ($first+$nrpages) . "\" title=\"Następne\">Następne</a>");
  34. }
  35. }
  36.  
  37. if (!isset($_GET['first'])) $first = 0; else $first = (int) $_GET['first']; 
  38. $nrpages = 10; 
  39. $szukaj=mysql_real_escape_string($_SESSION['wyszukaj']);
  40. $zap= "SELECT login,data FROM userdata WHERE login LIKE '%$szukaj%' LIMIT $first,$nrpages;";
  41. $countpages = mysql_num_rows(mysql_query("SELECT login FROM userdata WHERE login LIKE '%$szukaj%' "));
  42. $quer = mysql_query($zap);
  43.  
  44.  
  45. ?>


odczyt wygląda tak:

  1. <?php pages($first, $countpages, $nrpages, $zap); ?>
  2. <?php
  3.  
  4. while ($wiersz = mysql_fetch_array($quer)) 
  5. {
  6. $qwe++;
  7. $class = ($qwe%2==1) ? "wysz1" : "wysz2";
  8. echo '<div class="'. $class .'";>';
  9. echo '<b>'.$wiersz['login'].' </b><br />';
  10. echo '<br /> data rejestracji: '.$wiersz[data].'';
  11. echo '</div>';
  12. }
  13.  
  14. ?>


Wyszukuje rekordy, w tym wypadku 10 na stronę, jednak gdy mam 20 czy 200 wczytanych rekordów, owszem są one stronicowane co 10 na każdą stronę, ale gdy chcę zobaczyć stronę nr 2, lub 50 to zamiast się normalnie odczytać w stronicowaniu:

  1. Poprzednie |1| |2| |3| |4| Następne


skrypt się wykrzacza i pobierane są wszytkie rekordy z bazy, a co za tym idzie, wyglada to tak:

  1. |1| |2| |3| |4| |5| |6| |7| |8| |9| |10| |11| |12| |13| |14| |15| |16| |17| |18| |19| |20| |21| |22| |23| |24| |25| |26| |27| |28| |29| |30| |31| |32| |33| |34| |35| |36| |37| |38| |39| |40| |41| |42| |43| |44| |45| |46| |47| |48| |49| |50| |51| |52| |53| |54| |55| |56| |57| |58| |59| |60| |61| |62| |63| |64| |65| |66| |67| |68| |69| |70| |71| |72| |73| |74| |75| |76| |77| |78| |79| |80| |81| |82| |83| |84| |85| |86| |87| |88| |89| |90| |91| |92| |93| |94| |95| |96| |97| |98| |99| |100| |101| |102| |103| |104| Następne


W zalezności od ilości rekordów w bazie...


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 19.08.2025 - 06:51