Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]dzielenie zawartości tablic
Forum PHP.pl > Forum > Przedszkole
sidesign
Naszukałem się i nakombinowałem ale udało mi się w końcu zrobić skrypt który pozwala mi tworzyć galerie przez wyciągnięcie zdjęć z folderu na podstawie ID.

Aktualnie jednak chciałbym wzbogacić skrypt o dzielenie zdjęć(nazw zdjęć) tak aby w jednym wierszu była określona ich ilość, przykładowo 6.
Różne foldery zawierają różną ilość zdjęć, do tego te ilości oczywiście się zmieniają.

Prosiłbym o wskazówki lub kawałek skryptu, którego mi zwyczajnie brakuje.

Poniżej wgląd w skrypt

  1. <?php
  2.  
  3.  
  4. $gal= 'foto';
  5.  
  6. $sciezka= "$gal/";
  7.  
  8. settype($tablica, 'array');
  9.  
  10. if ($handle = opendir("$gal")) {
  11. while (false !== ($file = readdir($handle))) {
  12. if ($file != "." && $file != "..") {
  13. array_push($tablica, $file);
  14. }
  15. }
  16. closedir($handle);
  17. }
  18. //wyciagniete zdjecia sa juz w tablicy
  19.  
  20. //sortuje je rosnąco
  21. asort($tablica, SORT_STRING);
  22.  
  23.  
  24. //wyswietlam zdjecia jedno obok drugiegp
  25.  
  26. $zmienna = $tablica;
  27. $n = count($zmienna);
  28. array_values($tablica);
  29.  
  30. for ($i=0;$i<$n; $i++){
  31.  
  32. $wyswietl = $zmienna[$i];
  33.  
  34. echo ("<td><img src='".$sciezka."".$wyswietl."' border=1 alt='' /></td>")."\n";
  35.  
  36. }
  37.  
  38. ?>
ActivePlayer
  1. if($i%6) {
  2. echo "nowy wiersz";
  3. }
sidesign

Cytat(ActivePlayer @ 31.01.2012, 18:13:50 ) *
  1. if($i%6) {
  2. echo "nowy wiersz";
  3. }



wkleilem na kilka sposobów i nie daje mi 6 w jednym wierszu. Mógłbym prosić o wkazówkę w jaki sposób mam to zastosować żeby chciało działać?

Będę bardzo wdzięczny smile.gif
maviozo
sprawdź if ($i%6==0)
ano
Cytat(sidesign @ 31.01.2012, 20:13:05 ) *
wkleilem na kilka sposobów i nie daje mi 6 w jednym wierszu. Mógłbym prosić o wkazówkę w jaki sposób mam to zastosować żeby chciało działać?

Będę bardzo wdzięczny smile.gif

  1. <?php
  2.  
  3.  
  4.  
  5.  
  6.  
  7. $gal= 'foto';
  8.  
  9.  
  10.  
  11. $sciezka= "$gal/";
  12.  
  13.  
  14.  
  15. settype($tablica, 'array');
  16.  
  17.  
  18.  
  19. if ($handle = opendir("$gal")) {
  20.  
  21. while (false !== ($file = readdir($handle))) {
  22.  
  23. if ($file != "." && $file != "..") {
  24.  
  25. array_push($tablica, $file);
  26.  
  27. }
  28.  
  29. }
  30.  
  31. closedir($handle);
  32.  
  33. }
  34.  
  35. //wyciagniete zdjecia sa juz w tablicy
  36.  
  37.  
  38.  
  39. //sortuje je rosnąco
  40.  
  41. asort($tablica, SORT_STRING);
  42.  
  43.  
  44.  
  45.  
  46.  
  47. //wyswietlam zdjecia jedno obok drugiegp
  48.  
  49.  
  50.  
  51. $zmienna = $tablica;
  52.  
  53. $n = count($zmienna);
  54.  
  55. array_values($tablica);
  56.  
  57.  
  58.  
  59. for ($i=0;$i<$n; $i++){
  60.  
  61.  
  62.  
  63. $wyswietl = $zmienna[$i];
  64.  
  65.  
  66. if ($i%6==0) { echo "<tr>"; }
  67. echo ("<td><img src='".$sciezka."".$wyswietl."' border=1 alt='' /></td>")."\n";
  68.  
  69. if ($i%6==0) { echo "</tr>"; }
  70.  
  71.  
  72. }
  73.  
  74.  
  75.  
  76. ?>
sidesign
Dziękuje serdecznie za pomoc, najbliżej efektu którego szukałem był @ano.

Jednak w praktyce umieszczenie w tabeli takiego sposobu wyświetlania nie działa na skrypcie, który napisałeś, ponieważ element początkowy i końcowy również wyświetlał zdjęcie i odpowiednią ilość zdjęć miała co druga linijka.

Dla osób które będą poszukiwały podobnych rozwiązań to wrzucam tutaj właściwe rozwiązanie:


1. Wyświetlanie bez tabeli:

  1. for ($i=0;$i<$n; $i++){
  2.  
  3. $wyswietl = $zmienna[$i];
  4.  
  5. if ($i%5==0) { echo "<br />"; }
  6.  
  7. echo ("<img src='".$sciezka."".$wyswietl."' border=1 alt='' height=150 width=150/>&nbsp;&nbsp;&nbsp; ")."\n";
  8.  
  9. }
  10.  



2. Wyświetlanie z tabelą:

  1. //Tabelę otwieramy przed skryptem i zamykamy zaraz za nim
  2.  
  3. $wyswietl = $zmienna[$i];
  4.  
  5. if ($i%5==0) { echo "<br/><tr>"; }
  6. echo ("<td><img src='".$sciezka."".$wyswietl."' border=1 alt='' height=150 width=150/>&nbsp;&nbsp;&nbsp; </td> ")."\n";
  7.  
  8. }
  9.  
  10. echo '</tr>';
  11.  
  12. ?>
  13.  
  14. </table>
  15.  




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.