Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP/SQL] Zapętlone wyświetlanie galerii
Forum PHP.pl > Forum > Przedszkole
oi
Jak w pętli while wstawić wyświetlanie obrazków galerii w kilku kolumnach ?
  1. <?php
  2. while ($pokaz = mysql_fetch_array($wynik))
  3. {  $tytul=$pokaz['tytul'];
  4. $obrazek=$pokaz['obrazek'];
  5. $obrazekxl=$pokaz['obrazekxl'];
  6.  
  7.  <a href=\"$obrazekxl\" title=\"$tytul\"><img src=\"$obrazek\" title=\"$tytul\" />
  8.  $tytul <br /><img src=\"image/twarz.gif\" title=\"$autor\"> </a> ";
  9.  
  10. }
  11. ?>

wiem ze musze uzyc petli for np:
  1. <?php
  2. $ile = 3;
  3.  for (int i=; i<$ile ; ++i)
  4. ?>

ale jak to połączyćz wyświetlaniem obrazka w np $ile=3 kolumnach ?
qqrq
Dajmy na to masz 3 kolumny. Wstawiasz tabelkę i w pętli:

  1. <?php
  2. $i = 0; // licznik
  3. $c = 3; // kolumny
  4. while ($pokaz = mysql_fetch_array($wynik))
  5. {
  6. if ($i % $c == 0)
  7. echo '<tr>';
  8. $tytul=$pokaz['tytul'];
  9. $obrazek=$pokaz['obrazek'];
  10. $obrazekxl=$pokaz['obrazekxl'];
  11. echo"
  12. <td><a href=\"$obrazekxl\" title=\"$tytul\"><img src=\"$obrazek\" title=\"$tytul\" />
  13. $tytul <br /><img src=\"image/twarz.gif\" title=\"$autor\"> </a> </td>";
  14. if ($i % $c == $c-1)
  15. echo '</tr>';
  16. $i++;
  17. }
  18. while ($i % $c != 0)
  19. {
  20. echo '<td></td>';
  21. if ($i % $c == $c-1)
  22. echo '</tr>';
  23. $i++;
  24. }
  25. ?>
  26. </table>


Jakoś tak... Aczkolwiek nie sprawdzone, jakby coś nie działało, pisz...
oi
Co oznacza ta linijka : if ($i % $c == 0) - bo pierwszy raz sie z takim rozwiazaniem spotykam
phpion
Cytat(oi @ 6.09.2007, 10:46:33 ) *
Co oznacza ta linijka : if ($i % $c == 0) - bo pierwszy raz sie z takim rozwiazaniem spotykam

"Jeśli reszta z dzielenia $i / $c jest równa 0"
Gość
Tak domyśliłem się zaraz sprawdze jak to działa. Zastanawiam sie czy nie prościej byłoby zrobić to na pętli for.
qqrq
Można, ale po co robić 2 pętle, jak można jedną? smile.gif
oi
W 7 linijce od dolu jest błąd : echo '<td><td>'; 2x TD
oi
Wyswietlanie dziala. Błąd jest tylko w nadmiernym <TD> i nie poprawnym <tr>
Np otrzymuje taki kod zrodlowy :
  1. <h2> FOTOGALERIA</h2><table>
  2. <td><a href="galeria.php?akcja=all&id=3&id2=" title="ytul">123
  3. (2) <br /><img src=galeria/min/4.jpg><br />Galeria test4</a><br /> </td></tr><tr>
  4. <td><a href="galeria.php?akcja=all&id=2&id2=" title="Kupno ">Samochod
  5. (3) <br /><img src=galeria/min/6.jpg><br />Galeria test6</a><br /> </td>
  6. <td><a href="galeria.php?akcja=all&id=1&id2=" title="Galeria testowa:-)">Galeria testowa
  7. (2) <br /><img src=galeria/min/5.jpg><br />Galeria test5</a><br /> </td><td></table>
qqrq
OK, poprawione smile.gif
oi
Nie poprawione :-( jest błąd : otrymuje kod : </td><td></td><td></td></table>
Poza tym po co ustalać licznik
$i = 0; // licznik
$c = 3; // kolumny
Gdy zmieniam z zero na np 1 to nie generuje <tr> itd
qqrq
Poprawiłem jeszcze jednego byka i działa dobrze (sprawdziłem u siebie).
oi => nie zmieniaj licznika, licznik jest po to żeby liczył. Zmieniaj ilość kolumn na tyle na ile ci potrzeba. A jeśli chodzi o te puste komórki w tabeli - one są po to, żeby w każdym wierszu w tabeli było tyle samo komórek (jak masz np. 5 kolumn i 12 obrazków, to będą 3 rzędy, w ostatim 2 obrazki i 3 puste komórki)
oi.
Ok ten komentarz przy licznik mnie zmylił i dlatego zmieniałem jego wartość.
W przyszłości jak sie ogarnę z galerią to przerobie ja na warstwy . Czy można ten skrypt uprościć ?
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.