Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Stronicowanie, Podział na strony
mith
post
Post #1





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 14.04.2006

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


Witam
Mam mały problem mianowicie jak można przerobić ten skrypt tak aby był możliwy podział na strony wraz z możliwością wyboru strony np.:
<< < 1 2 3 [4] 5 6 7 > >>
I żeby na stronie było wyświetlane np. tylko 15 wierszy tej tabelki.

Dzięki z góry.

  1. <?
  2. include('db.php');
  3.  
  4. $result = mysql_query('SELECT * FROM tabela ORDER BY nazwa');
  5. if ($row = mysql_fetch_array($result)) {
  6.  
  7. print('<table border="1" width="100%" cellspacing="0" cellpadding="0" style="border-collapse: collapse" bordercolor="#F3F3F3">
  8. <tr><td><p align="left"><b>Nazwa</b></td>
  9. </tr><tr>
  10. ');
  11.  
  12. do {
  13.  
  14. print ('<td>'.$row["nazwa"].'</font></td></tr>
  15. ');
  16.  
  17. } while ($row = mysql_fetch_array($result));
  18. print('</table>');
  19. } else {
  20. print "Błąd: Nie odnaleziono rekordów.";
  21. }
  22. ?>


PS: Wiem że na forum dużo tego jest ale mi jest potrzebny akurat ten skrypt (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Master Miko
post
Post #2





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

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


@Krzyszbi dziwny ten Twój kod... zmienia tylko sposób obliczeń a nie wyświetlania

Nie wiem czy to zadziała... ale powinno:

Pisane z palca


  1.  
  2. <?php
  3. define('ILOSC_WYNIKOW_NA_STRONIE', 5);
  4.  
  5. include('db.php'); // połączenie z bazą itp
  6.  
  7. $SQL = "SELECT SQL_CALC_FOUND_ROWS * 
  8.        FROM tabela 
  9.        ORDER BY nazwa ASC 
  10.        LIMIT ".mysql_escape_string((int)$_GET['porcja']*ILOSC_WYNIKOW_NA_STRONIE).",".ILOSC_WYNIKOW_NA_STRONIE;
  11. //  pobiera ILOSC_NA_STRONIE rekordów z bazy, sortując wg daty rosnąco
  12. , zaczynając od $_GET['porcja']*ILOSC_NA_STRONIE
  13. $RES = mysql_query($SQL); // wykonujemy zapytanie
  14.  
  15. print('<table border="1" width="100%" cellspacing="0" cellpadding="0" style="border-collapse: collapse" bordercolor="#F3F3F3">
  16. <tr><td><p align="left"><b>Nazwa</b></td>
  17. </tr><tr>
  18. ');
  19.  
  20. while($row = mysql_fetch_assoc($RES)){
  21.    /*Wyswietlanie wyników, przykładowo:*/
  22. print ('<td>'.$row["nazwa"].'</font></td></tr>
  23. ');
  24. }
  25.  
  26. print('</table>');
  27.  
  28. // w inny sposób pobieramy ilosc danych w bazie
  29. $SQL = "SELECT FOUND_ROWS() as Ilosc";
  30. $RES= mysql_query($SQL);
  31. list($iloscWpisow) = mysql_fetch_row($RES);
  32.  
  33. //Teraz wypadało by wyswietlic jakąc nawigację 
  34.  
  35. //jesli nie jestesmy na pierwszej stronie
  36. if($_GET['porcja']>0){ 
  37.     //wyswietlamy link do poprzedniej strony
  38.    echo '<a href="?porcja='.($_GET['porcja']-1).'"> << </a> ';
  39. }
  40.  
  41. for($i = 0;$i<=floor($iloscWpisow/ILOSC_WYNIKOW_NA_STRONIE);$i++){
  42.    echo '<a href="?porcja='.($i).'">'
  43.    if($_GET['porcja'] == $i) {echo '[';}
  44.    echo ' '.($i+1).' ';
  45.    if($_GET['porcja'] == $i) {echo ']';}
  46.    echo '</a> ';
  47. }
  48. //jesli nie jestesmy na ostatniej stronie
  49. if($_GET['porcja']<floor($iloscWpisow/ILOSC_WYNIKOW_NA_STRONIE)){ 
  50.   //wyswietlamy link do nastepnej strony
  51.    echo ' <a href="?porcja='.($_GET['porcja']+1).'"> >> </a>';
  52. }
  53. ?>



Cytat
zrobić wyszukiwarkę

Sugeruje do tego inny plik np. (search.php).
Proste. Poszytaj sobie w manualu mysql o WHERE i LIKE.
Poza tym:
1. Robisz formularz (gdzie użytkownik wpisuje czego szuka)
2. Potem wciska submit do submit.php
3. submit.php analizuje dane (sprawdza bezpieczeństwo) i wyszukuje przez WHERE i/lub LIKE tych wartości.
4. Skrypt wyświetla wyniki (do tego też może być stronicowanie)

Poradzisz sobie. Wystarczy umiejętnie przerobić ten skrypt. ALe ja się już tego nie podejmę (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował Master Miko 19.05.2006, 16:30:21
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: 8.10.2025 - 18:34