Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Stronnicowanie
marcin0077
post 16.06.2011, 16:29:32
Post #1





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 18.10.2008

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


Witam

Mam taki kod:

  1. $obecna = $_GET['strona'];
  2. $promien = 5;
  3. $wykonaj = mysql_query("SELECT * FROM argue WHERE waiting = '0'");
  4. $max=mysql_num_rows($wykonaj)/5;
  5.  
  6.  
  7. for($i=$obecna-$promien; $i<$obecna+$promien; $i++) {
  8. if($i<1 || $i>$max)
  9. continue;
  10. $addClass = ($obecna == $i) ? '_obecna' : '';
  11. echo '<a class="strona'.$addClass.'" href="page/'.$i.'">'.$i.'</a>';
  12. }


Wygląda to tak: jeśli mam 5 postów to pokaże 1 stronę, jeśli 10 - 2, jeśli 15 - 3 strony ale jeśli mam np 11,12,13,14 postów to nadal pokazuje 2 strony a powinny być 3 (5+5+x). Nie bierze reszty z dzielenia pod uwagę. Tylko jak ukaże się 5 postów to wtedy pojawi się kolejna strona.

Proszę o pomoc
Go to the top of the page
+Quote Post
peter13135
post 16.06.2011, 17:18:34
Post #2





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


ceil


--------------------
:)
Go to the top of the page
+Quote Post
marcin0077
post 16.06.2011, 17:43:31
Post #3





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 18.10.2008

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


dzięki, chyba działa.
Go to the top of the page
+Quote Post
nospor
post 17.06.2011, 11:44:44
Post #4





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




Taka drobna uwaga:
Cytat
$wykonaj = mysql_query("SELECT * FROM argue WHERE waiting = '0'");
$max=mysql_num_rows($wykonaj)/5;

Wiesz co ten kod robi? Ten kod pobiera z bazy milion rekordów tylko po to, by policzyć ile ich jest. Totalnie nieoptymalne.
Liczenie rekordów pozostawia się bazie poprzez konkstrukcję:
select count(*) from tabela

Poczytaj o stronicowaniu, masa tego na forum, może nabierzesz lepszych nawyków.


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

"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
marcin0077
post 28.06.2011, 08:40:21
Post #5





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 18.10.2008

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


dodałem
  1. $q = mysql_query("SELECT COUNT * FROM argue WHERE waiting = '0'");


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home.312/.../.../includes/pages.php on line 24

Co robię źle?
Go to the top of the page
+Quote Post
Hpsi
post 28.06.2011, 08:43:37
Post #6





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


zrób sobie echo mysql_error();


--------------------
Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga
Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie
Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas

===
po prostu kocham ją :D haha
Go to the top of the page
+Quote Post
nospor
post 28.06.2011, 10:17:35
Post #7





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




zobacz jak ja napisałem COUNT a jak ty napisałeś COUNT


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

"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
marcin0077
post 28.06.2011, 15:33:36
Post #8





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 18.10.2008

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


poprawiłem ale zamiast liczby zwraca mi "array" próbowałem z mysql_fetch_array i mysql_fetch_assoc
Go to the top of the page
+Quote Post
nospor
post 28.06.2011, 17:32:28
Post #9





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




array - tablica.
Funkcje których używasz zwracają właśnie tablicę. Z tej tablicy masz wyciągnąc to co cię interesuje


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

"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
marcin0077
post 28.06.2011, 19:09:25
Post #10





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 18.10.2008

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


Kod wygląda tak, działa więc chyba jest dobrze
  1. $obecna = $_GET['strona'];
  2. $promien = 5;
  3. $q = mysql_query("SELECT count(*) AS id FROM argue WHERE waiting = '0'");
  4.  
  5. $max=ceil($q2['id']/5);
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: 12.06.2025 - 20:06