» Poradna » Web a internet

Phpinkrementace id for

 |   |  Microsoft Windows 10 Chrome 63.0.3239.132

Zdravím, mám tento kód, měl by sloužit k vypisování obrázků, ale potřeboval bych, aby každému img přiřadil id, které se postupně inkrementuje, čili aby výsledek vypadal cca img1 id=0 img2 id=1, zkoušel jsem to tím forem ve while, ale výsledek byl, že se vždy image naklonoval podle hodnoty numrovs a další série šla zase od 0 čili img1 id=0 img1 id=1, img2 id=0 img2 id=1. Dalo by se to nějak vyřešit?zdroják zde: https://pastebin.com/9EeHSYEK

Mohlo by vás také zajímat

Odpovědi na otázku

avatar
 | Microsoft Windows 10 Firefox 58.0

Jasně, tak si tam prdni třeba jéčko a to nikde nenuluj jako to íčko.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 63.0.3239.132

Jak přesně prosím?

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Firefox 58.0

Co já vím? Třeba takto? nezkoušel jsem.$j=0if($dotaz->num_rows>0){ while($radek=$dotaz->fetch()){ for($i=0;$i<$dotaz->num_rows;$i++){ echo "<img id=$j src=galerie/$Nazev>"; $j+=1; } }}

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Firefox 58.0

Zapomněl jsem tam ;

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Firefox 58.0

A nebo další možnost (netestoval jsem):$i=0if($dotaz->num_rows>0){ while($radek=$dotaz->fetch()){ for($i;$i<$i+$dotaz->num_rows;$i++){ echo "<img id=$i src=galerie/$Nazev>"; } }}

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Firefox 58.0

Zase jsem tam zapomněl ;

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 63.0.3239.132

Tak tohle je nekonečná generace img 1

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Firefox 58.0

Tak já nepsal, že to bude fungovat, když to nefunguje tak nefunguje, předchozí příklad by ale měl, je totožný s tím co uvedl ten druhej dole, akorát že tam navíc má to obr před číslem

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Firefox 58.0

Tak máš tam použité nějaké objekty.Záleží, co ty objekty vrací.U napsaného příkladu je ještě předpoklad, že se mění to, co ty objekty vrací při jejich opětovném zavolání.Podle toho, co píšeš o tom ale pochybuju.Takže doporučuji debugovaní.Např. kam napíšeš příkaz: die($proměnná); A skript skončí tam, kde toto napíšeš.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 63.0.3239.132

Ten includovany object vrací jen připojení k databázi

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Firefox 58.0

Přinejmenším je tam ta chyba, že identifikátor nesmí být číslo.Takže před $i lze dát nějakou písmennou konstantu.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 63.0.3239.132

Tím se ale nic nevyřeší, a proč by id nemohlo být číslo prosím?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Firefox 58.0

Protože to vyplývá ze standardu HTML, kdy identifikátor může obsahovat číslo, ale nesmí ním začínat. Protože to v mnohých prohližečích způsobuje nevalidní klientský kód. Nicméně, abych nepůsobil jako mudrlank, který neradí, tak kolega chtěl napsat něco takového:$j=0if($dotaz->num_rows>0){ while($radek=$dotaz->fetch()){ for($i=0;$i<$dotaz->num_rows;$i++){ echo "<img id="."obr"."$j src=galerie/$Nazev>"; $j+=1; } }}

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Firefox 58.0

Byl jsem rychlejší...A taky jsi zapomněl ;

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Firefox 58.0

No a když se na to dívám, tak podle normy tam chybí některé z uvozovek.Například nepíšeme<img id=obr1 />ale<img id='obr1' />

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Firefox 58.0

A když jsme u toho tak toto: "."tam máš navíc

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Firefox 58.0

jako myslím to první

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 63.0.3239.132

Ono to id se teď sice nenuluje a stoupá, ale ty img se pořád klonují hodnotou num_rows

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 63.0.3239.132

Prozatím nic nefungovalo, nemůže to být způsobeno tím whilem?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 7 Firefox 58.0

Zadání moc nechápu. Můžete ukázat, co přesně by mělo být výstupem a jaká jsou zdrojová data?

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 7 Firefox 58.0

Máš v sobě dva cykly, první (while) prochází výsledky dotazu a druhý vnořený (for) pro každý řádek výsledku generuje řadu i od nuly do počtu řádků výsledku a pro každé i vypisuje odkaz na obrázek...Když vykodíš vnořený cyklus for a postaráš se o růs i od nuly tak to snad dá co potřebuješ:::phpinclude"php.php";$pripojeni=pripojeni();$dotaz=$pripojeni->prepare("SELECT Nazev FROM galerie");$dotaz->execute();$dotaz->bind_result($Nazev);$dotaz->store_result(); if($dotaz->num_rows>0){ $i=0; while($radek=$dotaz->fetch()){ echo "<img id=img$i src='galerie/$Nazev'>"; $i++; }}::

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 63.0.3239.132

Ok, děkuji moc, teď už to funguje

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Pastebin, Výsledek