Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Stronnicowanie
Dapi
post
Post #1





Grupa: Zarejestrowani
Postów: 186
Pomógł: 13
Dołączył: 7.08.2009

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


Witam.
Robię paginacje zdjęć w wyszukiwarce galerii. Wszystko niby działa, ale nie wyświetla mi się druga strona i jest też problem z ostatnią.
Pozostałe działają. Mam 102 zdjęcia w galerii. Także powinno być 10 pełnych stron i 2 na 11.
Niestety 2 i 11 strona zwracają komunikat:
Cytat
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /Dapi/domains/adres.pl/public_html/galeria/nowa/wyszukiwarka.php on line 33
(linia 33 to while($wynik = mysql_fetch_array($wyniki_q)){)
Nie wiem czy ze zmęczenia już coś schrzaniłem, czy co, ale nie mogę sobie z tym poradzić.

Kod:
  1. if($_GET['faza']){
  2. $parse['faza'] = $faza;
  3.  
  4. $strona = stripslashes(addslashes(htmlspecialchars(strip_tags($_GET['str']))));
  5. if($strona <= 1){
  6. $start = 0;
  7. $strona = 1;
  8. }else{
  9. $start = ($strona-1)*10;
  10. }
  11.  
  12. $wyniki_q = query("SELECT * FROM `foto` WHERE `tagi` like '%".$faza."%' ORDER BY `id` DESC LIMIT $start , 10", true);
  13. $wyniki_str = query("SELECT * FROM `foto` WHERE `tagi` like '%".$faza."%'", true);
  14.  
  15. for($str = 0; ($str*10)<mysql_num_rows($wyniki_str); $str++){
  16. if(($str+1) == $strona){
  17. $kolor = "#cb7b00";
  18. }else{
  19. $kolor = "#7d7d7d";
  20. }
  21. $parse['strony'] .= '<div style="width: 20px; height: 20px; display: inline-table; border: 1px solid #000; margin: 5px; background: #111111; cursor: pointer;">
  22. <table cellpadding="0" border="0" cellspacing="0" style="width: 20px; height: 20px; text-align:center; margin: auto;"><tr><td><a href="?page=wyszukiwarka&amp;faza='.$faza.'&amp;str='.($str+1).'" style="text-decoration: none;"><span style="color: '.$kolor.'" onmouseover="this.style.color=\'#cb7b00\'" onmouseout="this.style.color=\''.$kolor.'\'">'.($str+1).'</span></a></td></tr></table>
  23. </div>';
  24. }
  25.  
  26. while($wynik = mysql_fetch_array($wyniki_q)){
  27. $parse['wyniki'] .= '<div style="width: 200px; height: 200px; display: inline-table; border: 1px solid #000; margin: 5px; vertical-align: middle; text-align:center; background: #111111;">
  28. <table cellpadding="0" border="0" cellspacing="0" style="width: 204px; height: 204px; text-align:center; margin: auto;"><tr><td><a href="?page=zdjecie&amp;id='.$wynik['id'].'" style="text-decoration: none"><img src="'.$wynik['adres'].'" style="max-width: 200px; max-height: 200px;" alt="foto"></a></td></tr></table>
  29. </div>';
  30. }
  31. }


Pomóżcie wink.gif


--------------------
www.dapi.net.pl - Wiele technologii, jedna pasja.
Go to the top of the page
+Quote Post
pmir13
post
Post #2





Grupa: Zarejestrowani
Postów: 282
Pomógł: 89
Dołączył: 12.04.2011

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


Powinno działać dobrze, ale nie znamy definicji query(), może tam coś kombinujesz za bardzo?
Go to the top of the page
+Quote Post
Dapi
post
Post #3





Grupa: Zarejestrowani
Postów: 186
Pomógł: 13
Dołączył: 7.08.2009

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


Skoro inne strony działają, to druga też musi. A jednak nie :/

query():
  1. function query($zaptanie,$wynik = false){
  2. $rezultat = mysql_query("$zaptanie");
  3. if($wynik == 'true'){
  4. if(strstr($zaptanie, "LIMIT 1")!==False){
  5. return mysql_fetch_array($rezultat);
  6. }else{
  7. return $rezultat;
  8. }
  9. }
  10. }


Jeśli $wynik = false to wykonuję zapytania nie zwracające wyniku.
Jeśli w zapytaniu znajduje się LIMIT 1, to tworzę ładną tablicę.
Jeśli nie ma limitu, to zapytanie można wrzucić do pętli while();
Może przekombinowane, ale sql mi wybitnie nie leży wink.gif

Dodam, że problem pojawia się tylko jeśli w zapytaniu pojawia się LIMIT X,12, gdzie X jest większe niż 9, a mniejsze niż 20.

Ten post edytował Dapi 22.04.2011, 10:19:15


--------------------
www.dapi.net.pl - Wiele technologii, jedna pasja.
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Temat: Jak poprawnie zadac pytanie
Zapoznaj się.


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





Grupa: Zarejestrowani
Postów: 282
Pomógł: 89
Dołączył: 12.04.2011

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


Cytat(Dapi @ 22.04.2011, 10:57:13 ) *
  1. if(strstr($zaptanie, "LIMIT 1")!==False)

Dodam, że problem pojawia się tylko jeśli w zapytaniu pojawia się LIMIT X,12, gdzie X jest większe niż 9, a mniejsze niż 20.

I wszystko jasne. "LIMIT 1" jest jak najbardziej częścią "LIMIT 10,10".
Go to the top of the page
+Quote Post
Dapi
post
Post #6





Grupa: Zarejestrowani
Postów: 186
Pomógł: 13
Dołączył: 7.08.2009

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


Dzięki. Nie zwróciłem zupełnie na to uwagi. wink.gif
Teraz śmiga


--------------------
www.dapi.net.pl - Wiele technologii, jedna pasja.
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: 20.08.2025 - 11:52