Autor Zpráva
Adrifinel
Profil
<?php
$prikaz = MySQL_Query("SELECT * FROM `kalendar` ORDER BY `kalendar`.`ID` ASC LIMIT 0, 1000;") or die (mysql_error());


if(mysql_num_rows($prikaz) >= 1) { // Když je alespoň jeden záznam
	echo'<table style="width: 100%">
		<tr><td width="10" class="td3">Datum</td><td width="220" class="td3">Událost</td></tr>';
	
	while($data = mysql_fetch_array($prikaz)) { // Vypisuj záznamy
		echo '<tr><td>'.date("j.n.Y", strtotime($data["datum"])).'</td><td>'.$data["text"].'</td></tr>'; 

		}
		echo '</table>';
}
else { // Když není žádný záznam
	echo'<table class=nohover bgcolor="#00366C" style="width: 100%">
	<tr><td><em>Dnes žádná událost neprobíhá, ani v minulých letech neprobíhala.</em></td></tr></table>';
}
$prikaz = MySQL_Query("SELECT * FROM kalendar WHERE DAY(NOW()) = DAY(datum) AND MONTH(NOW()) = MONTH(datum);") or die (mysql_error());
echo'#AB6AD2';


?>


Takže mám tabulku, kde se vypisují všechny momentálně záznamy vložené do db, a jak máte v Execelu možnost zbarvení podle podmínek, tak něco takového bych potřebovala i tady, kdy se zbarví řádek určitou barvou podle toho jaký je datum. Výpis podle aktuálního datumu bych měla, ale nevím, jak to aplikovat jednak na celou tabulku a jak napsat echo pro to zbarvení celého řádku.
o_O
Profil
Adrifinel:
v Execelu možnost zbarvení podle podmínek
Jsem Excel neznátor. O co tam jde?

jak napsat echo pro to zbarvení celého řádku.
Můžete si v CSS definovat třídy, například:
.prvni td {background:#FFFFFF;}
a pak vypisovat
<tr class="prvni">

kdy se zbarví řádek určitou barvou podle toho jaký je datum
Jakou barvou se má řádek zbarvit? Jakoukoliv?
Sir Tom
Profil
o_O:
Jsem Excel neznátor. O co tam jde?
Pokud hodnota buňky splní nějakou podmínku, tak se změní formát (např. pozadí) v buňce - jmenuje se to "Podmíněné formátování". Stejné je to i v Calcu.
Adrifinel
Profil
Sir Tom:
Jo, podmíněné formátování jsem myslela, já zásadně zapomínám názvy :)

o_O:
Tou, co mám v echo.
A tohle je mi jasné, přes tu třídu, ale nevím jestli by to neplatilo pro všechny řádky to jednak a jednak já nechci vyrobit nový záznam, ale použít to již na stávající vypsanou tabulku. A z toho, cos napsal mi nějak není jasné, jestli by to tak fungovalo.

Nejsem si totiž jistá, jestli si rozumíme, já nechci, mít zbarvene dejme tomu řádek 55, jaktož hezky obarvený řádek, ale já chci aby mi to zbravilo řádek 120, na kterém je dnešní datum.
Tlapka
Profil
Adrifinel:
Ahoj, zkus napsat přesně jak bys to chtěla formátovat (např. podle dne, roku, měsíce, dne v týdnu, ...) a jak (např. jen změna pozadí, nebo i ztučnění) a rada se snad najde :)

P.S. Ten kód je zvláštní, nejdřív načte všechny záznamy z DB (limitovaně), zpracuje je, pak je načte s podmínkou (což nezpracovává), a pak vypíše celkem nesouvisející řetězec. :-? :-)
Adrifinel
Profil
Tlapka:
Víš, jak jsme dělaly kalendář, že ti to vypíše záznam podle dnešního datumu?
Tak tohle by to udělalo něco podobnéo....

Máš tabulku, kde máš vypsané všechny záznamy z db. Pak jak máš v Excelu podmíněné formátovaní, že ti to třeba potrhne zeleně lidi, kterým prošla faktura atd. tak na stejném principu by fungovalo i tohle.

Je-li dnešní datum xx.xx.xxxx, pak se v tabulce, kde jsou vypsané všechny záznamy, označní všechny řádky, které splňují podmínku dnešního datumu touhle barvou #AB6AD2. A zase, každý den by se označily jiné řádky.
Tlapka
Profil
Jestli jsem to pochopila dobře, tak je to vlastně ještě jednodušší, než jsem myslela, nemusíme rozebírat datum, jenom zjistíme, jestli je dnešní. :-)
Zkus tenhle kód, označeno je to co jsem změnila. Ale nejsem si jistá, zda bude fungovat, je to psané narychlo z hlavy... ;-)

<?php
$prikaz = MySQL_Query("SELECT * FROM `kalendar` ORDER BY `kalendar`.`ID` ASC LIMIT 0, 1000;") or die (mysql_error());


if(mysql_num_rows($prikaz) >= 1) { // Když je alespoň jeden záznam
    echo'<table style="width: 100%">
        <tr><td width="10" class="td3">Datum</td><td width="220" class="td3">Událost</td></tr>';
    
    while($data = mysql_fetch_array($prikaz)) { // Vypisuj záznamy
        if(date("j.n.Y", strtotime($data["datum"])) == date("j.n.Y", time())) { // pokud je datum záznamu stejné jako dnešní:
			echo '<tr style="background-color: #AB6AD2;"><td>'.date("j.n.Y", strtotime($data["datum"])).'</td><td>'.$data["text"].'</td></tr>'; // vypiš obarvený řádek
		}
		else { // když je datum jiné:
			echo '<tr><td>'.date("j.n.Y", strtotime($data["datum"])).'</td><td>'.$data["text"].'</td></tr>'; // vypiš normální řádek
		}

        }
        echo '</table>';
}
else { // Když není žádný záznam
    echo'<table class=nohover bgcolor="#00366C" style="width: 100%">
    <tr><td><em>Dnes žádná událost neprobíhá, ani v minulých letech neprobíhala.</em></td></tr></table>';
}
$prikaz = MySQL_Query("SELECT * FROM kalendar WHERE DAY(NOW()) = DAY(datum) AND MONTH(NOW()) = MONTH(datum);") or die (mysql_error());
echo'#AB6AD2';


?>


Jinak ten inline CSS styl (style="background-color: #AB6AD2;") by se dal napsat samozřejmě i pomocí třídy (ne identifikátoru), jak tu už někdo psal.
Poslední řádky skriptu (v tvém prvním příspěvku č. 19 a 20) by se v tomhle případě daly smazat, nejsou podle mě užitečné (tedy pokud je toto konec skriptu a dále se to už nezpracovává)...

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0