Autor | Zpráva | ||
---|---|---|---|
mirio Profil |
#1 · Zasláno: 28. 7. 2011, 14:38:03 · Upravil/a: mirio
Ahoj, potřeboval bych poradit s, pro někoho, asi maličkostí, ale mně nic nenapadá - mám MySQL databázi, z které vypisuji takto data (schválně budu zkracovat, abych nezabíral místo)...
<?php $soupiska_vypis = mysql_query("SELECT dres, hrac, post, hul, vyska, vaha, narozen, poznamka FROM soupiska WHERE aktivni=1", $connection); if (!$soupiska_vypis) { die("Dotaz do databáze selhal: " . mysql_error () ); } echo("<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"soupiska\" summary=\"Sezóna 2010/2011\">"); echo("<caption><a name=\"S2010_2011\" id=\"S2010_2011\"></a>Sezóna 2010/2011:</caption>"); echo(" <colgroup>"); echo(" <col id=\"soupiskaDres\" />"); echo(" <col id=\"soupiskaHráč\" />"); ... ... echo(" </colgroup>"); echo("<thead>"); echo("<tr>"); echo(" <th scope=\"col\">Dres</th>"); echo(" <th scope=\"col\">Hráč</th>"); ... ... echo("</tr>"); echo("</thead>"); echo("<tbody>"); while ($soupiska = mysql_fetch_array($soupiska_vypis) ) { echo ("<tr>"); echo ("<td>".$soupiska["dres"]."</td>"); echo ("<td>".$soupiska["hrac"]."</td>"); ... ... echo ("</tr>"); echo ("<tr class=\"coloredRow\">"); echo ("<td>".$soupiska["dres"]."</td>"); echo ("<td>".$soupiska["hrac"]."</td>"); ... ... echo ("</tr>"); } echo("</tbody>"); echo ("</table>"); ?> ...kde vím, že tenhle zápis je špatně, protože mi to vypíše dvakrát stejný řádek, akorát jednou s jinou CSS třídou ("coloredRow"). Já bych ale chtěl, aby se mi v podmínce střídaly <tr> tagy tak, aby jednou byl bez a jednou s, čili tak, jak to je v mém kódu, ale s tím rozdílem, že nechci, aby se mi dublovaly výpisy z tabulky. Snad jsem to napsal aspoň trošku srozumitelně. Kdyžtak se ptejte. Moc děkuju za pomoc. |
||
nightfish_ Profil * |
#2 · Zasláno: 28. 7. 2011, 14:43:14
řádky 23 až 36 změň na:
$counter = 0; while ($soupiska = mysql_fetch_array($soupiska_vypis)) { echo "<tr"; if ($counter++ % 2) echo " class='coloredRow'"; echo "><td>".$soupiska['dres']."</td>"; echo "<td>".$soupiska['hrac']."</td>"; echo "</tr>"; } vysvětlivka řádku 4: pokud hodnota zbytek proměnné $counter po dělení 2 je TRUE (tzn. ne 0), vypiš pro tento řádek tabulky třídu, jinak nevypisuj nic (s tím, že po provedení výpočtu se obsah proměnné $counter zvýší o jedničku) |
||
blaaablaaa Profil |
#3 · Zasláno: 28. 7. 2011, 14:43:58 · Upravil/a: blaaablaaa
mirio:
Bud na tohle pouzij (ne vsude podporovany) css selektor tr:nth-child(2n+1), resp. tr:nth-child(odd) nebo si pred while pridej $i=0;, ktere pak v kazdem opakovani navysis o 1 a pri vypise radku overujes, zda je sude/liche. |
||
Ugo Profil * |
#4 · Zasláno: 28. 7. 2011, 14:46:55
while ($soupiska = mysql_fetch_array($soupiska_vypis) ) { $i++; if(fmod($i,2)==0) { echo ("<tr>"); echo ("<td>".$soupiska["dres"]."</td>"); echo ("<td>".$soupiska["hrac"]."</td>"); ... ... echo ("</tr>"); } else { echo ("<tr class=\"coloredRow\">"); echo ("<td>".$soupiska["dres"]."</td>"); echo ("<td>".$soupiska["hrac"]."</td>"); ... ... echo ("</tr>"); } } ... jestli si teda spravne pamatuju fmod :) ... pripadne to muzes vypsat bez trid a jednoduse to nastylovat pomoci pseudoelementu nth-child (stary IE at si trhnou) btw. palec nahoru za syntaxi echo, kez bych se to taky takhle naucil |
||
mirio Profil |
#5 · Zasláno: 28. 7. 2011, 15:40:12
Perfektní! Děkuju moc všem za ultrarychlé odpovědi, už mám odzkoušeno a je to krásně funkční. Ještě jednou dík moc.
|
||
Časová prodleva: 13 let
|
0