Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Ograniczenie stron, Jak to zrobic?
gabcio
post 12.02.2007, 11:35:37
Post #1





Grupa: Zarejestrowani
Postów: 109
Pomógł: 1
Dołączył: 31.08.2006

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


Witam

Pytanie może ktoś mi co nie co powiedziec jak zrobic limit na stronie w sensie, mam 200 rekordów i chcę, aby one pojawiały się po 20 rekordów i robiło [1] [2] strony itd

Pozdro dla nospor ;D

Wiedziałem, że coś będzie nie tak tongue.gif

Dzięki za info

Ten post edytował gabcio 12.02.2007, 11:41:03
Go to the top of the page
+Quote Post
nospor
post 12.02.2007, 11:36:48
Post #2





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




szukaj na forum pod haslem stronicowanie

Cytat
Pozdro dla nospor
Masz na mysli moja klase? No to co sie jeszcze tu pytasz? tongue.gif

ps: znacznika w tytule nie trzeba zamykac. Popraw, bo smiesznie to wyglada smile.gif


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

"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
gabcio
post 12.02.2007, 12:39:43
Post #3





Grupa: Zarejestrowani
Postów: 109
Pomógł: 1
Dołączył: 31.08.2006

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


  1. <?php
  2. switch ($widok) {
  3. case 'Wszystkie':
  4. $lp=0;
  5. $ww = $Sql->Query("select count(id) as ile from umowy");
  6. list($ilestron)=mysql_fetch_row($ww);
  7. $skok=25; 
  8. if(!$_GET['current'])$_GET['current']=1; 
  9. $stronadoprzejscia='spisumow.php?'.$widok.'='.$_GET[k].''; 
  10. $max=3;
  11. $temp=$_GET['current']/$skok;
  12. $temp++; 
  13. $stron=$ilestron/$skok; 
  14. $all=(int)($stron); 
  15. if($all!=$stron)$all++; 
  16. if(!$_GET['current']||($_GET['current']<=0))$_GET['current']=1;
  17. if($_GET['current']>$all)$_GET['current']=1;
  18. $od=$_GET['current']-$max;
  19. if($od<=0){$od=1;$do=2*$max+1;} 
  20. if(!$do)$do=$_GET['current']+$max;
  21. if($do>$all){$do=$all;$od=$do-2*$max;if($od<=0)$od=1;} 
  22. $kropki=$od-$max-1;
  23. if($kropki<=0)$kropki=1;
  24. if($od!=1)$stronicowanie.='<a href="'.$stronadoprzejscia.'&current=1">1</a> <a href="'.$stronadoprzejscia.'&current='.  $kropki.'">...</a> ';
  25. for($i=$od;$i<=$do;$i++){ 
  26. if($_GET['current']==$i)$stronicowanie.=' '.$i.' ';
  27. else $stronicowanie.=' <a href="'.$stronadoprzejscia.'&current='.$i.'">['.$i.']</a> ';
  28. }
  29. $kropki=$do+$max+1;
  30. if($kropki>$all)$kropki=$all;
  31. if($do!=$all)$stronicowanie.=' <a href="'.$stronadoprzejscia.'&current='.$kropki.'">...</A> <a href="'.$stronadoprzejscia.'&current='.$all.'">['.$all.']</a>';
  32. if($stronicowanie==' 1 ')$stronicowanie='';
  33. if($ilestron)echo($stronicowanie.'<BR><BR>');
  34.  
  35. $w = $Sql->Query("SELECT * FROM umowy order by data desc, godzina desc LIMIT ".($_GET['current']-1)*$skok.", $skok");
  36. ?>


Fajnie robi tylko jak klikam na strone kolejną [2] itd to nie pokazuje tylko czysty blank
Ma ktoś pomysł czemu tak jest?
Go to the top of the page
+Quote Post
yaotzin
post 12.02.2007, 21:41:26
Post #4





Grupa: Zarejestrowani
Postów: 157
Pomógł: 0
Dołączył: 12.02.2007
Skąd: Zielona Góra

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


  1. <?php
  2. $ilepostow = 5;
  3. $polaczenie = mysql_connect('localhost','root','krasnal')
  4. or die('Brak połączenia z bazą danych '.mysql_error());
  5. $db = mysql_select_db('komentarze',$polaczenie)
  6. or die('<strong> Nie mogę połączyć się z bazą danych '.mysql_error().'</strong>');
  7.  
  8. $odp = mysql_query("SELECT count(*) as ilosc FROM tab_komentarzy");
  9. $odpowiedz = mysql_fetch_array($odp, MYSQL_ASSOC);
  10.  
  11. printf("Komentarze (%s):<br> ", $odpowiedz['ilosc']);
  12. $ilosc = $odpowiedz['ilosc'];
  13.  
  14. $wynik = $ilosc/$ilepostow;
  15. $wynik = ceil($wynik);
  16.  
  17. $odp = mysql_query("SELECT * FROM tab_komentarzy GROUP BY DATA DESC LIMIT ".(($str-1)*$ilepostow).",".$ilepostow);
  18.  
  19. while($odpowiedz = mysql_fetch_array($odp, MYSQL_ASSOC)){
  20. printf("<div class="koment">%s</div>
  21. <div class="autor">%s</div> <div class="data">%s</div>",
  22. nl2br(htmlspecialchars($odpowiedz['Komentarz'])),
  23. htmlspecialchars($odpowiedz['Autor']),
  24. htmlspecialchars($odpowiedz['Data']));
  25. }
  26. echo('<div class="numer">');
  27. for($i=1; $i<=$wynik; $i++)
  28. echo ('<a href="index.php?str='.$i.'">'.$i.'</a> ');
  29. mysql_close($polaczenie);
  30. echo('</div>');
  31. ?>



Powyższy kod powoduje limit ilości komentarzy wyświetlanych na stronę... Po przyjrzeniu się widać iż za ilość elementów na stronę odpowiada zmienna ile postow, kod jest czescia wiekszego skryptu stąd niektórw funkcje moga nie działać lub coś, ale poza tym skrypt działa. Pisałem go jakiś czas temu PZDR....


--------------------
------
Per Aspera Ad Astra
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 Wersja Lo-Fi Aktualny czas: 9.07.2025 - 02:58