Autor | Zpráva | ||
---|---|---|---|
Fandaas Profil * |
#1 · Zasláno: 5. 9. 2006, 19:37:09
Ahoj, dělám fotogalerii a potřeboval bych, aby se mi po každé třetí fotce zalomil řádek, nejlépe, aby byly pokaždé ty tři fotky v jednom divu.
Je to udělaný přes databázi, zdroják je zde: ... $album = $_GET['aid']; include "include/in_db.php"; @$query = mysql_query("SELECT id,name,many,url FROM dexterous_albums WHERE id = '$album'"); @$check = mysql_num_rows($query); if ($check > 0) { $data = mysql_fetch_row($query); $i = $data[2]; echo "<div class='foto'>"; while ($i > 0): // dokud je $i větší než nula, prováděj následující příkazy echo "<div class='box'>"; echo "<img src='"; echo "$data[3]"; echo "$i"; echo ".jpg"; echo "' />"; echo "</div>"; $i--; endwhile; echo "</div>"; } else { echo "<div class='error'><h3>Neexistující album!</h3></div>"; } ... Ale teď mi to nějak nejde, zkoušel několik způsobů, ale nic. Nevíte náhodou co s tím? Jak udělat, aby byly pokaždé tři fotky v jednom divu? Díky moc za pomoc. |
||
WertriK Profil |
#2 · Zasláno: 5. 9. 2006, 19:40:27
$y = 1;
while ($i > 0): // dokud je $i větší než nula, prováděj následující příkazy if ($z == 1) { echo "<div >"; } echo "<div class='box'>"; echo "<img src='"; echo "$data[3]"; echo "$i"; echo ".jpg"; echo "' />"; echo "</div>"; if ($z == 3) { echo "</div>"; $z = 0; } $i--; $z++; endwhile; |
||
gaminn Profil * |
#3 · Zasláno: 5. 9. 2006, 19:45:09
WertriK
Není tam ještě ošetřený případ, kdy se zobrazuje počet fotek nedělitelný 3. $z = 1; while ($i > 0): // dokud je $i větší než nula, prováděj následující příkazy if ($z % 3 == 1) { echo "<div >"; } echo "<div class='box'>"; echo "<img src='"; echo "$data[3]"; echo "$i"; echo ".jpg"; echo "' />"; echo "</div>"; if ($z % 3 == 0 || $z == $check) { echo "</div>"; } $i--; $z++; endwhile; Snad to není blbost a bude to fungovat;) |
||
WertriK Profil |
#4 · Zasláno: 5. 9. 2006, 20:13:49
gaminn
Jsi to moje asi nepochopil :) Ta proměnná je jen od 1 do 3, takže není třeba dělitelnost řešit :) |
||
Fandaas Profil * |
#5 · Zasláno: 5. 9. 2006, 20:16:50
gaminn
Máš pravdu ten příklad předtím funguje, ale není tam ošetřený případ, kdy se zobrazuje počet fotek nedělitelný 3. Ten tvůj boužel ale nefunguje. Div se hodí za každou fotku a přeskočí jednu, prostě ňák skáče z místa na místo. Nevíte, jak by se to dalo udělat, aby to bylo ošetřeno pro nedělitelný počet fotek? Děkuji za zájem. Děkuji za odpověď. |
||
Fandaas Profil * |
#6 · Zasláno: 5. 9. 2006, 20:17:42
gaminn
Jsi to moje asi nepochopil :) Ta proměnná je jen od 1 do 3, takže není třeba dělitelnost řešit :) Ano, ale koncový div se v tomto případě nezobrazí. |
||
WertriK Profil |
#7 · Zasláno: 5. 9. 2006, 20:20:49
Snad to pofakčí fčil :)
$y = 1; while ($i > 0): // dokud je $i větší než nula, prováděj následující příkazy if ($z == 1) { echo "<div >"; } echo "<div class='box'>"; echo "<img src='"; echo "$data[3]"; echo "$i"; echo ".jpg"; echo "' />"; echo "</div>"; if ($z == 3) { echo "</div>"; $z = 0; } $i--; $z++; endwhile; if ($y < 3) { echo "</div>"; } |
||
Fandaas Profil * |
#8 · Zasláno: 5. 9. 2006, 20:24:26
WertriK
Jejda, proč mě to taky nenapadlo. Už to jede. Děkuji moc, díky moc za zájem a urychlené vyřešení problému. Díky moc. |
||
pavel prochazka.zde.cz Profil * |
#9 · Zasláno: 5. 9. 2006, 20:28:30
kod jsem ale nijak nezkousel......
echo "<div class='box'>"; while ($i > 0): // dokud je $i větší než nula, prováděj následující příkazy echo "<img src='"; echo "$data[3]"; echo "$i"; echo ".jpg>'"; $i--; endwhile; echo "</div>"; } else { echo "<div class='error'><h3>Neexistující album!</h3></div>"; } |
||
gaminn Profil * |
#10 · Zasláno: 5. 9. 2006, 20:30:38
WertriK
Já myslím, že jsem tě pochopil, ale ty jsi nepochopil mě. Snad už je vše pochopeno;) Fandaas Ten můj příklad funguje dobře, jen jsem přesně nepochopil, jak tam zacházíš s proměnnou $check (neuvědomil jsem si, že ta má nejspíš vždy hodnotu 1). Takže v té podmínce místo $check napiš $data[2]. Nebo úplně abstraktně - druhá podmínka pro vypsání musí být true v případě, když se vypsala každá třetí fotka nebo se vypsala poslední fotka. Není snad problém si to potom upravit. |
||
gaminn Profil * |
#11 · Zasláno: 5. 9. 2006, 20:32:19
pavel prochazka.zde.cz
Nj, jenže on chce mít na jednom řádku vždy tři fotky. Tady to prostě vypíše všechny fotky do jedný linie. |
||
pavel prochazka.zde.cz Profil * |
#12 · Zasláno: 5. 9. 2006, 20:34:34
ok, ja z databazema neumim vubec zachazet a tak nemam tuseni co me muze vratil.
Pokud je uz vsechno vyreseno, tak se tim uz nebudu zabejvat... |
||
gaminn Profil * |
#13 · Zasláno: 5. 9. 2006, 20:35:25
pavel prochazka.zde.cz
Tady nejde vůbec o databázi. |
||
gaminn Profil * |
#14 · Zasláno: 6. 9. 2006, 11:00:50
WertriK
Nechci být hnidopich, ale jen tak mě napadlo, že toto tvoje řešení není pořád to pravé ořechové. Uvedu příklad - vypisuje se 9 obrázků, takže dojde ke správnému zakončení divu už v samotném cyklu while. Jenže tím pádem je v $z nejdřív 0, následně je inkrementováno, takže $z=1. To pořád splňuje podmínku pro vypsání zakončovacího divu v poslední podmínce. |
||
Martin Majliš Profil |
#15 · Zasláno: 6. 9. 2006, 11:28:16
Myslim, ze todle by mohlo fungovat:
|
||
gaminn Profil * |
#16 · Zasláno: 6. 9. 2006, 11:42:27
Martin Majliš
$id = $naRadek * $i + $j; Je to v podstatě ekvivalent (stačí zaměnit $z % 3 na $z % $naRadek): $z = 1; while ($i > 0): // dokud je $i větší než nula, prováděj následující příkazy if ($z % 3 == 1) { echo "<div >"; } echo "<div class='box'>"; echo "<img src='"; echo "$data[3]"; echo "$i"; echo ".jpg"; echo "' />"; echo "</div>"; if ($z % 3 == 0 || $z == $data[2]) { echo "</div>"; } $i--; $z++; endwhile; |
||
Martin Majliš Profil |
#17 · Zasláno: 6. 9. 2006, 11:54:12
gaminn:
Ja to jen proletl ocima, a kdyz za tim meli nejake pripominky, tak jsem si myslel, ze to obsahuje chybu a nezkoumal jsem to blize. Promin. Takze jedina "dobra vec" v tom mojem prispevku byla, ze jsem ukazal, ze je dobre se zamyslet, jestli je skutecne zvetsovani promenne o 1 vzdy to nejlepsi reseni. Ze obcas se hodi i neco jineho. :o) |
||
gaminn Profil * |
#18 · Zasláno: 6. 9. 2006, 12:04:10
Martin Majliš
No ještě taková drobnost - Fandaas má každý obrázek obalený <div class="box">, ty tam máš použit tento div pro každé tři obrázky (takhle to je samozřejmě lepší, o jeden div méně, ale stylovat se to dá úplně stejně). Jo, máš pravdu, že to jde i jinak, ale spotřebuješ na to o dost více kódu;) (nebo to je těmi komentáři? :D) Tohle je naprosto dokonalá verze :D (kdo ví, jestli se sem ještě Fandaas někdy podívá a zdokonalí si tak stránky;)):
|
||
gaminn Profil * |
#19 · Zasláno: 6. 9. 2006, 12:11:54
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0