Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> php i mysql stronnicowanie :P
michas999
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 13.05.2007

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


witam!
mam następujący kod:
  1. <?php
  2. /******************************************************
  3. * connection.php
  4. * konfiguracja połączenia z bazą danych
  5. ******************************************************/
  6.  
  7. function connection() {
  8. // serwer
  9. $mysql_server = "localhost";
  10. // admin
  11. $mysql_admin = "212";
  12. // hasło
  13. $mysql_pass = "123";
  14. // nazwa baza
  15. $mysql_db = "222";
  16. // nawiązujemy połączenie z serwerem MySQL
  17. @mysql_connect($mysql_server, $mysql_admin, $mysql_pass)
  18. or die('Brak połączenia z serwerem MySQL.');
  19. // łączymy się z bazą danych
  20. @mysql_select_db($mysql_db)
  21. or die('Błąd wyboru bazy danych.');
  22. } 
  23. // wywołujemy funkcję connection()
  24. connection(); 
  25.  
  26.  
  27.  
  28. /* zapytanie do konkretnej tabeli */
  29. $wynik = mysql_query('select * from `torrents`');
  30. $hits = mysql_num_rows($wynik);
  31.  
  32. $wynik = mysql_query('select * from `torrents`');
  33.  
  34. /*
  35. wyświetlamy wyniki, sprawdzamy,
  36. czy zapytanie zwróciło wartość większą od 0
  37. */
  38. if(mysql_num_rows($wynik) > 0) {
  39. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  40. echo "<table cellpadding="2" border=1>";
  41. while($r = mysql_fetch_assoc($wynik)) {
  42. echo "<tr>";
  43. echo "<td> nazwa: ".$r['name']."</td>";
  44. echo "</tr>";
  45. }
  46. echo "</table>";
  47. } 
  48.  
  49.  
  50.  
  51.  
  52.  
  53. ?>

jak zrobic aby na stronie było 10 wyników z bazy i zrobić do tego podstrony, chodzi mi o to żeby na dole strony pojawialo sie: 1 2 3 4 5 itd (automatycznie generowana ilosc stron) i ze jak sie kliknie w 2 to zeby przenosilo na 2 strone i pokazywalo wyniki od 11 do 20 wlacznie itd itd winksmiley.jpg

pozdrawiam!

Ten post edytował michas999 13.05.2007, 16:58:59
Go to the top of the page
+Quote Post
Siner
post
Post #2





Grupa: Zarejestrowani
Postów: 159
Pomógł: 6
Dołączył: 2.01.2004

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


Poszukaj na forum pod hasłem "stronicowanie" wątek wałkowany wiele razy na forum.


--------------------
Go to the top of the page
+Quote Post
michas999
post
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 13.05.2007

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


no niestety, nie moge sobie z tym dac rady, jestem poczatkujacy i nie zabardzo to rozumiem, moze mi ktos poda gotowy kod z komentarzami?
Go to the top of the page
+Quote Post
strife
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Cytat(michas999 @ 13.05.2007, 17:49:09 ) *
no niestety, nie moge sobie z tym dac rady, jestem poczatkujacy i nie zabardzo to rozumiem, moze mi ktos poda gotowy kod z komentarzami?


Chyba śnisz, że ktoś Ci ten kod poprawi winksmiley.jpg Pokaż nam jak próbowałeś to Ci pomożemy i zmień nazwę tematu bo tutaj każdy ma "problem".

Pozdrawiam.


--------------------
Go to the top of the page
+Quote Post
michas999
post
Post #5





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 13.05.2007

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


wiec dalem tak:
  1. <?php
  2. /******************************************************
  3. * connection.php
  4. * konfiguracja połączenia z bazą danych
  5. ******************************************************/
  6.  
  7. function connection() {
  8. // serwer
  9. $mysql_server = "localhost";
  10. // admin
  11. $mysql_admin = "michal99_zaplecz";
  12. // hasło
  13. $mysql_pass = "123";
  14. // nazwa baza
  15. $mysql_db = "michal99_zaplecze";
  16. // nawiązujemy połączenie z serwerem MySQL
  17. @mysql_connect($mysql_server, $mysql_admin, $mysql_pass)
  18. or die('Brak połączenia z serwerem MySQL.');
  19. // łączymy się z bazą danych
  20. @mysql_select_db($mysql_db)
  21. or die('Błąd wyboru bazy danych.');
  22. } 
  23. // wywołujemy funkcję connection()
  24. connection(); 
  25. ?>
  26.  
  27. /* zapytanie do konkretnej tabeli */
  28. $wynik = mysql_query('select * from `torrents`');
  29. $hits = mysql_num_rows($wynik);
  30.  
  31. $wynik = mysql_query('select * from `torrents`');
  32.  
  33. /*
  34. wyświetlamy wyniki, sprawdzamy,
  35. czy zapytanie zwróciło wartość większą od 0
  36. */
  37. if(mysql_num_rows($wynik) > 0) {
  38. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  39. echo "<table cellpadding="2" border=1>";
  40. while($r = mysql_fetch_assoc($wynik)) {
  41. echo "<tr>";
  42. echo "<td> nazwa: ".$r['name']."</td>";
  43. echo "</tr>";
  44. }
  45. echo "</table>";
  46.  
  47.  
  48.  
  49. <br><br><Br>
  50.  
  51.  
  52.  
  53.  
  54. <?php
  55.  $sql = 'select count(*) from torrents';
  56.  $result = mysql_query($sql);
  57.  $row = mysql_fetch_array($result);
  58.  $recordsCount = $row[0];//pobranie liczby rekordów
  59.  $pager = new Pager('1');
  60.  $pager->SetTotalRecords($recordsCount);//ustawienie liczby rekordów
  61.  //wygenerowanie pagera i zapamietanie go w zmiennej w celu
  62.  //pozniejszego wyswietlenia
  63.  $renderPager = $pager->Render();
  64.  $start = $pager->GetIndexRecordStart();//pobranie indexu rekordu początkowego
  65.  $end = $pager->GetIndexRecordEnd();//pobranie indexu rekordu koncowego
  66.  //zapytanie z uwzglenieniem stronicowania
  67.  $sql = 'select * from torrents limit '.$start.','.($end - $start + 1);
  68.  //...pobranie wyników i ich wyswietlenie
  69.  echo $renderPager; //wyswietlenie pager'a
  70. ?>


to mi wywalilo:
Kod
Fatal error: Cannot instantiate non-existent class: pager in /home/michal99/public_html/list.php on line 61



ps. tutaj linia 61 to $pager->SetTotalRecords($recordsCount);//ustawienie liczby rekordów a w notatniku to: $pager = new Pager('1');

Ten post edytował michas999 13.05.2007, 17:01:36
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




jak korzystaj z jakiejs klasy, to musisz ją dołączyc do skryptu, np tak:
  1. <?php
  2. require_once('Pager.class.php');
  3. //.... reszta twojego kodu
  4. ?>

Zakladam ze klasa plik z klasa znajduje sie w biezacym katalogu


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
michas999
post
Post #7





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 13.05.2007

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


a skad wziasc ta klase?

ok mam juz,
teraz mam kod:
  1. <?php
  2. /******************************************************
  3. * connection.php
  4. * konfiguracja połączenia z bazą danych
  5. ******************************************************/
  6.  
  7. function connection() {
  8. // serwer
  9. $mysql_server = "localhost";
  10. // admin
  11. $mysql_admin = "michal99_zaplecz";
  12. // hasło
  13. $mysql_pass = "123";
  14. // nazwa baza
  15. $mysql_db = "michal99_zaplecze";
  16. // nawiązujemy połączenie z serwerem MySQL
  17. @mysql_connect($mysql_server, $mysql_admin, $mysql_pass)
  18. or die('Brak połączenia z serwerem MySQL.');
  19. // łączymy się z bazą danych
  20. @mysql_select_db($mysql_db)
  21. or die('Błąd wyboru bazy danych.');
  22. } 
  23. // wywołujemy funkcję connection()
  24. connection(); 
  25. ?>
  26.  
  27. /* zapytanie do konkretnej tabeli */
  28. $wynik = mysql_query('select * from `torrents`');
  29. $hits = mysql_num_rows($wynik);
  30.  
  31. $wynik = mysql_query('select * from `torrents`');
  32.  
  33. /*
  34. wyświetlamy wyniki, sprawdzamy,
  35. czy zapytanie zwróciło wartość większą od 0
  36. */
  37. if(mysql_num_rows($wynik) > 0) {
  38. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  39. echo "<table cellpadding="2" border=1>";
  40. while($r = mysql_fetch_assoc($wynik)) {
  41. echo "<tr>";
  42. echo "<td> nazwa: ".$r['name']."</td>";
  43. echo "</tr>";
  44. }
  45. echo "</table>";
  46.  
  47.  
  48.  
  49. <br><br><Br>
  50.  
  51.  
  52.  
  53.  
  54. <?php
  55. require_once('Pager.class.php');
  56.  $pager = new Pager('idPagera');
  57.  //okreslenie liczby wszystkich rekordów na 500
  58.  $pager->SetTotalRecords(500);
  59.  echo $pager->Render();//wyswietlenie pagera
  60. $sql = 'select count(*) from TABLE';
  61.  $result = mysql_query($sql);
  62.  $row = mysql_fetch_array($result);
  63.  $recordsCount = $row[0];//pobranie liczby rekordów
  64.  $pager = new Pager('idPagera');
  65.  $pager->SetTotalRecords($recordsCount);//ustawienie liczby rekordów
  66.  //wygenerowanie pagera i zapamietanie go w zmiennej w celu
  67.  //pozniejszego wyswietlenia
  68.  $renderPager = $pager->Render();
  69.  $start = $pager->GetIndexRecordStart();//pobranie indexu rekordu początkowego
  70.  $end = $pager->GetIndexRecordEnd();//pobranie indexu rekordu koncowego
  71.  //zapytanie z uwzglenieniem stronicowania
  72.  $sql = 'select * from TABLE limit '.$start.','.($end - $start + 1);
  73.  //...pobranie wyników i ich wyswietlenie
  74.  echo $renderPager; //wyswietlenie pager'a
  75.  
  76. ?>

jak wyswietlic zapytania ?

ok juz mam:
  1. <?php
  2. /******************************************************
  3. * connection.php
  4. * konfiguracja połączenia z bazą danych
  5. ******************************************************/
  6.  
  7. function connection() {
  8. // serwer
  9. $mysql_server = "localhost";
  10. // admin
  11. $mysql_admin = "michal99_zaplecz";
  12. // hasło
  13. $mysql_pass = "123";
  14. // nazwa baza
  15. $mysql_db = "michal99_zaplecze";
  16. // nawiązujemy połączenie z serwerem MySQL
  17. @mysql_connect($mysql_server, $mysql_admin, $mysql_pass)
  18. or die('Brak połączenia z serwerem MySQL.');
  19. // łączymy się z bazą danych
  20. @mysql_select_db($mysql_db)
  21. or die('Błąd wyboru bazy danych.');
  22. } 
  23. // wywołujemy funkcję connection()
  24. connection(); 
  25. ?>
  26.  
  27.  
  28. <?php
  29. require_once('Pager.class.php');
  30.  $pager = new Pager('idPagera');
  31.  //okreslenie liczby wszystkich rekordów na 500
  32.  $pager->SetTotalRecords(500);
  33.  echo $pager->Render();//wyswietlenie pagera
  34. $sql = 'select count(*) from torrents limit 10';
  35.  $result = mysql_query($sql);
  36.  $row = mysql_fetch_array($result);
  37.  
  38.  $recordsCount = $row[0];//pobranie liczby rekordów
  39.  $pager = new Pager('10');
  40.  $pager->SetTotalRecords($recordsCount);//ustawienie liczby rekordów
  41.  //wygenerowanie pagera i zapamietanie go w zmiennej w celu
  42.  //pozniejszego wyswietlenia
  43.  $renderPager = $pager->Render();
  44.  $start = $pager->GetIndexRecordStart();//pobranie indexu rekordu początkowego
  45.  $end = $pager->GetIndexRecordEnd();//pobranie indexu rekordu koncowego
  46.  //zapytanie z uwzglenieniem stronicowania
  47.  $sql = 'select * from torrents limit '.$start.','.($end - $start + 10);
  48. $result = mysql_query($sql);
  49.  $row = mysql_fetch_array($result);
  50. echo "<table cellpadding="2" border=1>";
  51. echo "<tr>";
  52. echo "<td> nazwa: ".$row['name']."</td>";
  53. echo "</tr>";
  54. echo "</table>";
  55.  
  56.  //...pobranie wyników i ich wyswietlenie
  57.  echo $renderPager; //wyswietlenie pager'a
  58.  
  59. ?>

ale pokazuje tylko 1 wynik :/ prbowalem z linijkom:
$sql = 'select * from torrents limit '.$start.','.($end - $start + 10);

i

$recordsCount = $row[0];//pobranie liczby rekordów
ale to nic nie daje :/

Ten post edytował michas999 13.05.2007, 17:49:42
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. <?php
  2. $sql = 'select count(*) from torrents limit 10';
  3. ?>

to zapytanie sluzy do pobrania liczby wszystkich rekordów. Nie moze w nim wiec byc zadnego limitu...

Tak ma byc:
  1. <?php
  2. $sql = 'select count(*) from torrents';
  3. ?>


edit:
jedziemy dalej:
Kod
<?php
$row = mysql_fetch_array($result);
    echo "<table cellpadding=\"2\" border=1>";
        echo "<tr>";
        echo "<td> nazwa: ".$row['name']."</td>";
        echo "</tr>";
    echo "</table>";
?>

Przeciez ten kod pobiera ci tylko jeden rekord.... w petli ma byc
Kod
<?php
echo "<table cellpadding=\"2\" border=1>";
while($row = mysql_fetch_array($result)){
    
        echo "<tr>";
        echo "<td> nazwa: ".$row['name']."</td>";
        echo "</tr>";
}
    echo "</table>";
?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
michas999
post
Post #9





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 13.05.2007

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


wszystko dziala, prawie tongue.gif

w bazie mam: 3690 wpisów (pozyji itd), a jak patrzec i policzyc:
skrypt wyswietla 10 pozycji i ma tylko 10 stron, czyli razem pokazuje 100 zapytan (pozycji) a powinien 3690 smile.gif

ok wiem o co chodzi, nie przewija automatycznie stron tongue.gif np jak jest 10 to zeby cyferka 10 byla po srodku wszystkich, ale i tak pokazuje 2560 :/

Ten post edytował michas999 13.05.2007, 19:08:55
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Twoj kod to sieczka. Dwa razy robisz new Pager, za kazdym razem wyswietlasz innego pagera. nic dziwnego ze cos ci sie ciagle źle wyswietla. Uporzadkuj to, najlepiej przejrzyj przyklady co dołączylem do klasy.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
michas999
post
Post #11





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 13.05.2007

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


ok, poprawiłem:
wyglada teraz to tak:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  2. <html xml:lang="en" lang="en" xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="content-type" content="text/html; charset=ISO-8859-2" />
  5. <link rel="shortcut icon" href="favicon.ico" />
  6. <title>Stronicowanie</title>
  7.  
  8. </head> 
  9. <body>
  10. <?php
  11.  
  12. /******************************************************
  13. * connection.php
  14. * konfiguracja połączenia z bazą danych
  15. ******************************************************/
  16.  
  17. function connection() {
  18. // serwer
  19. $mysql_server = "localhost";
  20. // admin
  21. $mysql_admin = "mcz";
  22. // hasło
  23. $mysql_pass = "123";
  24. // nazwa baza
  25. $mysql_db = "me";
  26. // nawiązujemy połączenie z serwerem MySQL
  27. @mysql_connect($mysql_server, $mysql_admin, $mysql_pass)
  28. or die('Brak połączenia z serwerem MySQL.');
  29. // łączymy się z bazą danych
  30. @mysql_select_db($mysql_db)
  31. or die('Błąd wyboru bazy danych.');
  32. } 
  33. // wywołujemy funkcję connection()
  34. connection(); 
  35. ?>
  36.  
  37.  
  38. <?
  39. require_once('Pager.class.php');
  40. $sql = 'select count(*) from user';
  41. $result = mysql_query($sql);
  42. $row = mysql_fetch_array($result);
  43. $recordsCount = $row[0];//pobranie liczby rekordów
  44. $pager = new Pager('idPagera');
  45. $pager->SetTotalRecords($recordsCount);
  46. $pag = $pager->Render(true);
  47. $start = $pager->GetIndexRecordStart();
  48. $end = $pager->GetIndexRecordEnd();
  49.  
  50. //zapytanie z uwzglenieniem stronicowania
  51.  $sql = 'select * from user ORDER BY username limit '.$start.','.($end - $start + 10);
  52. //...pobranie wyników i ich wyswietlenie
  53. $result = mysql_query($sql);
  54.  
  55. echo "<table cellpadding="2" border=1>";
  56. while($row = mysql_fetch_array($result)){
  57. echo "<tr>";
  58. echo "<td> nick; ".$row['username']." hasło: ".$row['password']." salt: ".$row['salt']." email: ".$row['email']." tytuł ".$row['usertitle']." postów ".$row['posts']."</td></b>";
  59. echo "</tr>";
  60. }
  61. echo "</table>";
  62. echo $pag;//wyswietlenie pager'a
  63. ?>
  64.  
  65.  
  66. </body>
  67. </html>



ale dalej 10(wyniki na 1 strone)*5586(ilosc stron)=55860(tyle w bazie)
a wpisow w bazie mam: 83,780 total smile.gif

Ten post edytował michas999 13.05.2007, 20:42:23
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
ale dalej 10(wyniki na 1 strone
a liczyc umiesz? policz sobie ile ci wyswietlil rekordow na stroine a zobaczysz ze nie 10.... mysl troche chlopie a nie na takich banalach lezysz

Nie:
  1. <?php
  2. $sql = 'select * from user ORDER BY username limit '.$start.','.($end - $start + 10);
  3. ?>

a:
  1. <?php
  2. $sql = 'select * from user ORDER BY username limit '.$start.', 10';
  3. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
michas999
post
Post #13





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 13.05.2007

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


wszystko dziala smile.gif thx, pomogles robic potezne zaplecze smile.gif

pozdro!
Go to the top of the page
+Quote Post

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: 21.08.2025 - 21:54