Autor | Zpráva | ||
---|---|---|---|
Ariska Profil |
#1 · Zasláno: 28. 5. 2013, 00:42:53
Dobrý den, potřebovala bych od vás pomoci. Jde o to, že z databáze vypisuji data, a vypisují se na stránku tak, že jsou na řádku vždy dva záznamy, a mám to nastylované tak, že druhý záznam má trochu jiný styl. No a já potřebuji, aby se tyto dva styly ve výpisu střídaly, a nějak nevím jak na to... o:)
Takhle vypadá kód: if ($vysledek=mysql_query("$sql")){ echo "<ul>"; while ($radek=mysql_fetch_array($vysledek)){ echo "<li><img src='images/demo/420x190.gif' alt='' /><h2>" . $radek["nazev"] . "</h2><p>" . $radek["text"] . "</p><p class='readmore'><a href='#'>Vědět více »</a></p></li>"; } echo "</ul>"; }else{ echo mysql_error(); } A tento kód se má s tím předešlým střídat. echo "<li class='last'><img src='images/demo/420x190.gif' alt='' /><h2>" . $radek["nazev"] . "</h2><p>" . $radek["text"] . "</p><p class='readmore'><a href='#'>Vědět více »</a></p></li>"; Zkusila jsem udělat druhý while cyklus, ale to nebylo správně. Cykly jsou právě to, co mi moc nejde, takže bych ocenila radu zkušenějších, myslí, že je to jednoduché řešení, akorát nevím jaké... o:) Děkuji vám moc za vaší ochotu mi poradit. |
||
preca1 Profil |
#2 · Zasláno: 28. 5. 2013, 00:57:37
Zdravim,
co koukam, tak jedinej rozdíl je v tom, že v druhym případě máš navíc class='last' . Můžeš si udělat lokální proměnnou $counter = 0; , kterou v každý iteraci zvedneš o jedno a pak pomocí podmínky (asi $counter % 2 == 0 ) buď přidáš tento text, nebo ne.
Poznámka vedle, třída last značí, že je něco poslední, což podle tvého kódu neni. Možná by stálo za to onu třídu přejmenovat.
|
||
martin1312 Profil |
#3 · Zasláno: 28. 5. 2013, 02:15:16
preca1:
ono možno to vychádza tak, že na riadku budú iba 2 tieto bloky a potom by pomenovanie last mohlo byť v zmysle "na konci riadka" :)
|
||
peta Profil |
#4 · Zasláno: 28. 5. 2013, 14:06:04
Nebo by se to dalo resit v css pres nth-child, even, odd.
|
||
Ariska Profil |
#5 · Zasláno: 28. 5. 2013, 14:11:35 · Upravil/a: Ariska
Ano, jak řiká martin1312, je to myšleno přesně jak píše. Ale moc nerozumím jak to myslíš... chápu myšlenku, ale nevím jak to zakomponovat do toho while cyklu, který tam už mám.
peta: jo to vypadá zajímavě, zkusím to prozkoumat :) peta Skvělí, moc ti děkuji, funguje to bezvadně. A je to snadné a pro mě nové. Díky za nové poznatky, vždy jsem nadšená za novinky o:) |
||
martin1312 Profil |
Ja len dodám, že preca1 to myslel takto:
$i = 1; while(...) { $class = ($i % 2 == 0) ? 'last' : ''; ... ... $i++; } |
||
pcmanik Profil |
Ariska:
Nth-child() má podporu až od IE9, takže ak je potrebná podpora starších verzií riešenie od preca1 je lepšie, nakoľko bude fungovať všade. |
||
Ariska Profil |
#8 · Zasláno: 28. 5. 2013, 22:13:19
martin1312:
Jo táák, teda dalo mi to chvíli to pochopit, neboť nejsem tak moc pokročilá, jak si vypsal kód o:). Ale dneska už jsem jednou viděla podobnou podmínku, a pak normální zápis, tak jsem z toho tak nějak pochopila, co to je za zvláštní, pokročilý a pro mě neznámý zápis :D no ale už mi to také funguje a lépe, neboť u toho css jsem ho musela trochu upravit. A právě že jsem se také dočetla, že není tak kompatibilní... tak moc děkuji, za nové poznatky :) |
||
peta Profil |
pcmanik: Pak bych pouzil javascript, ktery muzu podle class aplikovat na jakoukoliv tabulku. Vubec bych neztracel cas placat se se vzhledem v php.
Jeste je tu moznost first-child / last-child, jedno z toho funguje i ve starsim IE. martin1312: $class = ($i % 2 == 0) ? 'last' : ''; $class = ($i % 2 == 0) ? ' class="last"' : ''; // ja bych to resil tatko, za predpokladu, ze tam neni dalsi class |
||
martin1312 Profil |
#10 · Zasláno: 29. 5. 2013, 14:59:28
peta:
to je fuk, bolo to iba nástrelové riešenie a osobne to aj tak riešim mojím spôsobom, presne kôli tomu, čo píšeš - môže tam byť viac tried. |
||
Časová prodleva: 11 let
|
0