![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 26.12.2002 Ostrzeżenie: (0%) ![]() ![]() |
Heh, nie wiedziałem jak dokładnie nazwać ten temat, bo to troszkę skomplikowana sprawa
![]() Mam na stronie galerię. Na stronie pokazującej konkretną kategorię mam skrypt, który wybiera z katalogu wszystkie miniaturki i umieszcza je w 3-kolumnowej tabeli. Wszystko dobrze działa, gdy jest 3x (czyli np. 3, 30, 36 zdjęć), jednak gdy jest 3x+1 (4, 31, 37), to we wszystkich wierszach są po 3 obrazki, ale w ostatnim pojawiają się 4 i rozciąga to tabelę. Przez to psuje się cały design strony... Chciałbym wiedzieć, co zrobić, aby w takim wypadku ten ostatni obrazek przenosił się do następnego wiersza (żeby w ostatnim był tylko jeden obrazek). Męczę się z tym od wakacji i nie mogę sobie poradzić, mimo że próbowałem różnymi metodami... ![]() [php:1:30b2ce1e18]<? $path = "$katalog/male/"; $dir = opendir($path); while ($d = readdir($dir)){ if ($d != "." && $d!= ".."){ $pliki[] = $d; } } natcasesort($pliki); $len = count($pliki)-1; echo "<table border=0 cellspacing=10 cellpadding=10><tr>"; $licznik=0; while (list($k,$v)=each($pliki)){ for ($i=0;$i<$len;$i=$i+3){ if ($licznik==$i){ echo "</tr><tr>"; } } print ("<td><center><a target="_blank" href=$katalog/$v><img alt="$v" src=".$path.$v." border=0></a></center></td>"); $licznik++; } echo "</tr></table>"; ?>[/php:1:30b2ce1e18] -------------------- www.skokinarciarskie.com
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 259 Pomógł: 0 Dołączył: 17.05.2003 Skąd: Nysa Ostrzeżenie: (10%) ![]() ![]() |
Mialem cos gdzei podobnego i wygladalo to tak:
[php:1:7b95306984]<?php $licznik=0; echo '<table border=0>'; while ($tapetki = mysql_fetch_row($wynik)) { if((is_int($licznik/3)) && ($licznik!=0)) echo "</tr>"; if(is_int($licznik/3)) echo "<tr>"; echo "<td><img src='tapety/$tapetki[2]' width='120'><br><ahref='tapety/gett.php?plik=$tapetki[1]' target='_blank'><font size=1 face=verdana><b><center>Pobrań ($tapetki[3])</center></b></font></a></td>"; $licznik++; } echo '</table>'; ?>[/php:1:7b95306984] Prosze umieszczać kod php w odpowiednich znacznikach. (scanner) |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Ja to rozwiązałem jeszcze inaczej - masz tutaj właściwie gotowy skrytp:
[php:1:3194502d92]<?php $add="n<table border="0" width="800" cellpadding="10" cellspacing="0">n"; for($i=0,$a=0; $i<count($mini); $i++) { if($a==0) { $add.="n<tr>"; $add.="<td align="center" valign="middle"><img src="".$mini[$i]."" border="0"></td>"; $a+=1; } elseif($a==1) { $add.="<td align="center" valign="middle"><img src="".$mini[$i]."" border="0"></td>"; $a+=1; } elseif($a==2) { $add.="<td align="center" valign="middle"><img src="".$mini[$i]."" border="0"></td>"; $add.="n</tr>"; $a=0; } } $add.="</table>"; echo $add; ?>[/php:1:3194502d92] gdzie: $mini - tabela z nazwami plików Konstrukcja $add zamiast echo jest taka, ponieważ wynik tego skryptu zapisywałem do pliku, a teraz nie chce mi się zmieniać. -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 26.12.2002 Ostrzeżenie: (0%) ![]() ![]() |
o, dzięki
![]() przetestuję jutro i powiem, jak działa (chociaż podejrzewam, że będę miał problemy z wyborem, jeśli oba te skrypty będą mnie satysfakcjonować ![]() -------------------- www.skokinarciarskie.com
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Cytat [php:1:0db3346e9f]for($i=0,$a=0; $i<count($mini); $i++)[/php:1:0db3346e9f]
Spenalzo: i przy każdym przebiegu pętli obliczasz count($mini). Oblicz to przed pętlą, chyba, że wewnątrz pętli tablica zmienia rozmiar. Optymalizacja ![]() A pozatym... To już było. -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat Spenalzo: i przy każdym przebiegu pętli obliczasz count($mini). Oblicz to przed pętlą, chyba, że wewnątrz pętli tablica zmienia rozmiar.
Nie pomyślałem nawet o tym :-) -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 06:23 |