Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyświetlenie kilku zdjęć
Forum PHP.pl > Forum > PHP
KCG
Załóżmy, że mam wysokość 800px i chciałbym, aby wyświetliło się na niej tyle zdjęć, ile się zmieści, czyli np. 3 o wysokościach 300,200,300 lub 4 o wys. 200,200,300,100. Zdjęcia są różne, czyli np. na jednej stronie będą 3 zdjęcia, na drugiej może być 5.
Nazwy plików są pobierane z bazy.
Fragment, jak na razie mam, z tym, że tu na sztywno są ustawione 3 na stronę:
  1. <?php
  2. $sql = 'SELECT * FROM `e_images` WHERE `e_images_mid`='.$_GET['id'];
  3. $res = $mysql->query($sql);
  4. $pager = new pager($mysql->num_rows($res),3);
  5. $first = $pager->first();
  6. $shows = $pager->p_shows();
  7. $sql .= ' ORDER BY `e_images_kolejka` ASC LIMIT '.$first.','.$shows;
  8. $res = $mysql->query($sql);
  9. echo '<table id="enc_table">';
  10. while ($opis = $mysql->fetch_array($res)) {
  11. echo '<tr><td class="top" id="enc_podmodel_img">';
  12. echo '<a href="images/enc/'.$opis['e_images_image'].'.jpg" target="_blank"><img src="images/enc/'.$opis['e_images_image'].'t.jpg" title="Kliknij, aby powiększyć" alt="" /></a>';
  13. echo '</td><td class="top small">'.nl2br(stripslashes($opis['e_images_notka'])).'</td></tr>';
  14. }
  15. echo '</table>';
  16. $pager->links();
  17. ?>


pzdr

Może zobrazuje:
http://pytak.no-ip.org/~trudny/motocykl/en...ain=1&id=25
Tutaj powinny być 2 fotki, żeby strona po prostu się nie rozciągała.
A tu mogło by być jedno więcej:
http://pytak.no-ip.org/~trudny/motocykl/en...id=25&str=2
Kihol
Najłatwiejszym rozwiązaniem byłoby trzymać w bazie poza nazwą zdjęcia jego wymiary - a przynajmniej wysokość (np pole height) i rozwiązanie byłoby wtedy następujące :
Wyciągasz z bazy więcej zdjęć niż potrzebujesz, w php sprawdzasz ile wejdzie :
  1. <?php
  2. $height=0;
  3. $pics=array();
  4. foreach ($records as $v) {
  5.  if ($height+$v['height'] <= 800) {
  6. $height+=$v['height']; //wielkość obrazka
  7. $pics[] = $v;  // dodaję kolejny obraz do arraya, żeby później wyświetlić
  8.  }
  9.  else
  10.  break;
  11. }
  12. ?>


w tablicy $pics masz kolejne obrazy, które wyświetlisz na danej stronie
sizeof($pics) będzie informacją ile obrazów na prawdę wyświetlasz i o tyle zwiększysz zmienną $first
KCG
Dzięki wielkie winksmiley.jpg Jednak wpadłem na coś podobnego. Tylko pojawia się problem z linkami.
Przekazuję 2 zmienne $first i $back (poprzednia strona). Z linkiem do następnej strony nie ma problemu. Do poprzedniej jako $first ustawiam aktualną $back, a nie wiem, co wstawić w $back w linku do poprzedniej strony.
  1. <?php
  2. echo '<a href="link.php?back=(?)&first='.$_GET['back'].'>poprzednia</a>';
  3. echo '<a href="link.php?back='.$first.'&first='.$next.'>poprzednia</a>';
  4. ?>


Jeszcze raz dzięki za odp; pzdr
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.