Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]dzielenie zawartości tablic, problem z 'krojeniem' na wiersze
sidesign
post 31.01.2012, 18:07:01
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 25.01.2012
Skąd: Wrocław

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


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. ?>


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
ActivePlayer
post 31.01.2012, 18:13:50
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

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


  1. if($i%6) {
  2. echo "nowy wiersz";
  3. }
Go to the top of the page
+Quote Post
sidesign
post 31.01.2012, 20:13:05
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 25.01.2012
Skąd: Wrocław

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



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

Ten post edytował sidesign 31.01.2012, 20:14:02


--------------------
Go to the top of the page
+Quote Post
maviozo
post 31.01.2012, 21:19:22
Post #4





Grupa: Zarejestrowani
Postów: 197
Pomógł: 24
Dołączył: 22.11.2010

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


sprawdź if ($i%6==0)
Go to the top of the page
+Quote Post
ano
post 31.01.2012, 22:43:17
Post #5





Grupa: Zarejestrowani
Postów: 435
Pomógł: 40
Dołączył: 16.02.2003
Skąd: Wrocław

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


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. ?>


Ten post edytował ano 31.01.2012, 22:43:40


--------------------
Linkedin | ...
Go to the top of the page
+Quote Post
sidesign
post 1.02.2012, 10:56:50
Post #6





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 25.01.2012
Skąd: Wrocław

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


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.  






--------------------
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 Wersja Lo-Fi Aktualny czas: 18.07.2025 - 01:43