Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problem z rozwiazaniem stronicowania
Forum PHP.pl > Forum > Przedszkole
kosmic
witam ponownie... a więc przechodząc do konkretów to cche uzyskać taki efekt, że wyświetlane są w mojej galeri np miniatury zdjęć w ilości 12 na stronie, no i dodatkow ma to byc podzielone na wiersze, czylki tak jakby macierz 3x4 (3 wiersze i 4 kolumny), no i jeszcze ddatkowo chce aby pod kazdym zdjceiem wyswietlało mi link np. do oceny zdjecia i dodawania komentarzy...

niestety zaczołem, ale jakos to nie działa jak pwinno i ne bardzo wiem jak mam to rozwiązać...

głownie chodzi o to ze po gdy linkg przybieze postac pokaz==wszystkie to w danym miejscu pokazuja sie minatury na zasadach wyżej opisanych...

foto: zdjecie efektu

Kod
<? if($_GET['pokaz'] == 'wszystkie') { ?>
  <TABLE BORDER="0" WIDTH="545" CELLPADDING="0" CELLSPACING="0">
      <tr>
          <td width="12" class="gal_foto"></td>
          <td class="gal_foto" height="140" valign="center" align="center">
              <table border="0" cellpadding="0" cellspacing="0" width="520">
                  <tr height="10"><td height="10"></td></tr>
  <?
  $limit = 12;
  $page = 0;
  $pob_zdj = mysql_query("SELECT * FROM foto WHERE kategoria='$id_kat' LIMIT ".($page*$ile).",$limit");
  $ile = mysql_num_rows($pob_zdj);
  $wiersze = ceil($ile/4);
  for ($a=0;$a<$wiersze;$a++)
  { ?>
                  <tr align="center">
  <?
  $b=$a*4;
  $zapytanie="SELECT * FROM foto WHERE kategoria='$id_kat' LIMIT $b,4";
  $c=mysql_query($zapytanie);
  while($zap_zdj = mysql_fetch_array($c)) {
  $id_zdj = $zap_zdj['id'];
  $zdjecie = $zap_zdj['zdjecie'];
  
  @$wielkosc_zdj = getImageSize("upload/$zdjecie");
  $szer = $wielkosc_zdj[0];
  $wys = $wielkosc_zdj[1];
  $szer = ($szer+15);
  $wys = ($wys+15);
  $r=1;
  if($szer>800  || $wys>600) { $r=2; $szer=($szer+15);}
  ?>                    
  <td width="110" height="100" align="center" valign="center"><a href="javascript:displayWindow<?echo $r;?>('zdjecie.php?id_zdjecia=<?echo $id_zdj;?>',<?echo $szer;?>,<?echo $wys;?>)" class="fotolink"><img src="upload/<? echo $zdjecie; ?>" width="100" height="90" align="center" border="0"></a><br/>ala<br/>ocena<br/><hr height="1"></hr></td>        
  <? } ?>        
                  </tr>
                  <tr height="1"><td height="1" class="staty_linia"></td></tr>
                  <tr height="10"><td height="10"></td></tr>
  <? } ?>
                  <tr height="1"><td height="1" class="staty_linia"></td></tr>
              </table>
      </td>
      <td width="13" class="gal_foto"></td></tr>
  </table>
  
  <? } ?>


to sam kod tego modułu.... problem jes np taki, ze jak dam zmiennej limt wartosc powiedzmy 9 to i tak wyswietla 12 zdjec, czyli jakby całośc... :(ktos moze pomóc exclamation.gifquestionmark.gif?
loff
Patrzac na to przypominam sobie dlaczego przestałem mieszac html z php...

Cytat
głownie chodzi o to ze po gdy linkg przybieze postac pokaz==wszystkie to w danym miejscu pokazuja sie minatury na zasadach wyżej opisanych...

No a inaczej powinno ? Jak chciałbyś zeby na stronie wyświetlało sie wiecej niz 12 po wywołaniu pokaz wszystkie to musisz pozbyć sie limitu i wyświetlać wszystkie rekordy po kolei. Inna sprawa ze nie rozumiem po co tyle zapytan do bazy skoro możesz pobrać interesujące Cię 12 rekordów i wyswietlac za pomocą tych dwóch pętli - nie trzeba tylu zapytań

Cytat
to sam kod tego modułu.... problem jes np taki, ze jak dam zmiennej limt wartosc powiedzmy 9 to i tak wyswietla 12 zdjec, czyli jakby całośc.

http://pl.php.net/manual/pl/function.ceil.php
ta funkcja zaokragla w góre a wiec 9/4 = 3 czyli 3 wiersze z 4 zdjeciami =12

czyli wszystko działa tak jak napisałes
kosmic
hmmm..

n włąsnie ja chce aby wyswietlało sie 12 miniaturek... a doceowo to woógle pod zmienna limit bede chciał przypisac inna zmienną, której wartość będzie mógł sobie zmieniać oprzeglądającyna własne potrzeby... ale to jakos sobie mysle poradze.... sad.gif

skoro wiesz co i jak, i dlaczego tak sie dzieje to moze pomozesz questionmark.gif

wiem jak działa funkcja ceil, i uzwalem jej do stornicowania, ale nie roblem wczesniej takiego dzielonego na wiersze i kolumny sad.gif

no nie bardzo rozumiem, skoro w limit ustawiłem 10 zdjec, to dlaczego wyswietla 12 questionmark.gif
loff
Jak mam Ci pomoc jak ty nie wiesz jak działa Twoj własny kod?!

Cytat
no nie bardzo rozumiem, skoro w limit ustawiłem 10 zdjec, to dlaczego wyswietla 12

Ustawiles go w PIERWSZYM zapytaniu i baza zwraca ci 10 rekordów potem ty dzielisz 10 przez 4 i zaokraglasz co daje 3 co rzutuje dalej na to ze pętla FOR wykonuje sie 3 razy co oznacza ze wykonujesz 3 zapytania o kolejne 4 wiersze z bazy! ROZUMIESZ BŁAD W SWOIM ROZUMOWANIU ? rozwiazanie ci podsunałem we wczesniejszym poście. Robisz tylko jedno zapytanie (to pierwsze co masz moze być) a potem wyświetlasz w tych dwóch pętlach ale nie robiąc kolejnych zapytan do bazy.

szkic kodu ktory TY musisz sobie napisac
  1. <?php
  2. $query = mysql_query(tutaj zapytanie z odpowiednim limitem jaki chcesz $offset,$ilosc)
  3.  $ile = mysql_num_rows($query); // albo poprostu wiesz ile pobierasz i zamiast tego podstawiasz tu $ilosc
  4. $wiersze = ceil($ile/4); // stad wiesz ile bedzie potrzebne wierszy
  5. for ($a=0;$a<$wiersze;$a++)
  6. {
  7.  
  8.  $ilw =$ile-($a*4) ; // w zaleznosci ile zdjec pozostało tyle bedzie razy wykonywac sie druga pętla
  9.  if($ilw<4){$ilw = $ilw%4;} // inna sprawa ze powinno sie to wykonać i tak zawsze 4 bo inaczej to html sie pot
    eteguje biggrin.gif
  10. // ale troche myslenia musze zostawic dla Ciebie ;)
  11.  
  12.  for($z=0;$z<$ilw;$z++)
  13. {
  14. $dane = mysql_fetch_array($query);
  15. //i tu wyswietlasz swoje zdjecie
  16.  
  17. }
  18. }
  19. ?>
kosmic
sorki... ale czy moze ktos pomóc rozwiązac ój problem bo jakos nie moge sobie z tym poradzic sad.gif
marcio
  1. <?php
  2. $pob_zdj = mysql_query("SELECT * FROM foto WHERE kategoria='$id_kat' LIMIT 1,12");
  3.  $ile = mysql_num_rows($pob_zdj);
  4. $wiersze = ceil($ile/4);
  5. for ($a=0;$a<=$wiersze;$a++) {
  6. for($i = 0; $i <= 3; $i++) {
  7.  echo($zdjecie[$a][$i]); // to masz przyklad ale najpierw musisz pobrac dane wysokosc szerokosc itp to co m
    asz pod tym daj na gore i //ogolnie jak juz powiedzial przedmownik nie mieszaj php z html bo sie w kodzie po
    lapac nie idzie
  8. ?>

Napewno cos tu jest zle bo zabardzo nie zrozumialem o co chodzi tylko nie zapomnij zrobic tego co ci @loff powiedzial sprawdzaj ile potem fotek zostalo zeby dobrze wyswietlic

P.S zapomnialo mi sie o $ przy zmiennych przywyklem do C smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.