Autor Zpráva
DTX
Profil
Proměnná $i je celé čílso. Jak zjistím, jesli je po dělení beze zbytku.
Fuknce bude součástí cyklu akaždou třetí fotku se má řádek zalomit.
Tam,kde je napsáno TADY, by se to mělo provést. Ale neznám onu funkci.
Napadlo mě použít pole, ale vypisovat násobky do nekonečna...

Př scriptu:

$p - počet fotek (získáva se z SQL)

for($i = 1; $i <= $p; $i++)
{

echo "<a href="fotky/".$slozka."/".$i.".jpg"target="_blank">";
echo "<img src="fotky/".$slozka."/small/".$i.".jpg">";
echo "</a>";

if($i/3 == TADY ) {echo "<br>";}
}

Jsem z toho vedle, jak ten topol. :-) Děkuju za každou pomoc.
koudi
Profil
if ($i % 3 == 0)
pavel prochazka.zde.cz
Profil *
funkce fMOD a nebo:

function mod($nX,$nY)
{
$nBuffer= $nX/$nY;
$nBuffer = floor($nBuffer);
$nBuffer=abs(($nBuffer*$nY)-$nX);
return $nBuffer;
}

tato funkce ti vrati zbytek po deleni....
koudi
Profil
pavel prochazka.zde.cz
Proč tak složiťe?
souki
Profil
koudi
Proč tak složiťe?
O co se vsadíš, že je to matematik?
koudi
Profil
O co se vsadíš, že je to matematik?
Bylo by to dost dobře možné.
pavel prochazka.zde.cz
Profil *
koudi Pac to je reseni ktere bych pouzil v cecku a ve visualbasicu6 a dalsich programovacich jazyku ktere umim. A tak ho pouzivam i v php. Nepochybuji ze to co jsi napsal je perfektne funkci ale ja tomu nerozumim.... Musil bych se podivat do manualu co to presne znamena ale typuji ze kdyz v promenne $i bude cislo delitelne se zbytkem po deleni 0 tak nastane true, jinak false.
Ten kod dokazi precist ale pri psani kodu bych to nikdy tak nenapsal.....proste leta pouzivani nizkourovnovych jazyku me naucily nejake postupy a ty jsou uz vzite a overene casem za to tak faka.
Mastodont
Profil
pavel prochazka.zde.cz

Mod je operátor zbytku po celočíselném dělení, čili přesně to, co DTX potřebuje. Ve Visual Basicu 6 je taky :-))
pavel prochazka.zde.cz
Profil *
Mastodont jojo ve VB6 je ale uz tento operator chyby u jednocipovich mikroradicu, kde neexistuje zadna aritmetika a vsechno se musi delat pomoci stitani, odecitane, rotace registru a pomoci priznaku registrovat co se vlastne deje s cislem.
bukaj
Profil
a co takhle test na float:
if(!is_float($i/3)){ <pokud není se zbytkem> }
koudi
Profil
pavel prochazka.zde.cz
jojo ve VB6 je ale uz tento operator chyby u jednocipovich mikroradicu, kde neexistuje zadna aritmetika a vsechno se musi delat pomoci stitani, odecitane, rotace registru a pomoci priznaku registrovat co se vlastne deje s cislem.

To je sice super, ale my tu neřešíme jednočipové mikrořadiče :)

bukaj
a co takhle test na float:

nechápu, co máte všichni proti operátoru %
pavel prochazka.zde.cz
Profil *
koudi ja neman nic proti procentam (pokud tecou do me kapsy) :), jen jsem dal svoje reseni....
bukaj
Profil
<OT>
koudi: nechápu, co máte všichni proti operátoru %
já proti němu nic nemám. ale prostě jsem zvyklý používat / :)
</OT>
Miloš
Profil
pavel prochazka.zde.cz
a neman nic proti procentam
Co to plkáš? Modulo nemá s procentama nic společného.
koudi
Profil
Miloš
Modulo nemá s procentama nic společného.
To je pravda, vůbec nic. Teda kromě zápisu x % y.
Miloš
Profil
koudi
Teda kromě zápisu x % y.
A proč se násobí hvězdičkou? To jako že bude odkaz pod čarou?
A proč má král na hlavě korunu a ne pětikorunu?
A proč není javascript skriptovací javou?
pavel prochazka.zde.cz
Profil *
Miloš nach jo a operator % je asi co? Je to oznaceni procent :):):), jsem se pokousel o ftipek, ale asi jsem zustal nepochopeny.... :)
DTX
Profil
Máte zajímavá řešení, ale to co jsem potřeboval nejvíc vystihnuj bukaj (krátké a jednoduché). Fest dik
Me2d
Profil *
Teď je otázka, co je nejjednodušší pro PHP. Tady to neřešíš, ale pokud bys tento příkaz měl třeba 200 000 zopakovat, tak poznáš rozdíl mezi
!is_float($i/3)

a

$i % 3 == 0
...u prvního musíš navíc volat funkci, která ti zjistí, jestli se jedná o číslo s "plovoucí čárkou" a to podle mě zabere víc, než "=="...takže hlasuju pro "procenta" :-D
Joker
Profil
Teď je otázka, co je nejjednodušší pro PHP.
No, řekl bych, že použití operátoru modulo a porovnání bude určitě rychlejší, než dělení, funkce is_float a ještě její negace

pokud bys tento příkaz měl třeba 200 000 zopakovat
No to není takový problém zjistit, stačí to hodit do benchmarkovacího skriptu a vyšlo mi tohle: is_float: 0,302s, modulo: 0,191s, takže modulo je víc než o polovinu rychlejší.
DTX
Profil
Je rychléjší, to jo.... Ale po pár hodinách mi došlo, že se to dá obejít pomocí HTML: nechal jsem to vypisovat do tabulky a mezi obrázky jsem vložil mezeru, šířka tabulky je pevná zatím co délka ne. HTML za mě řádky zalamuje samo. => PHP není třeba a funguje, dal bych vám tu link, ale nevim jestli to můžu... :-)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0