Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: naprzemienne kolorowanie tabeli w php (nie sql!!!)
Forum PHP.pl > Forum > PHP
mop506
mam nastepujacy kod ::
Cytat
while (!feof($filmy)):
$event =fgets($filmy,4096);
$info =explode(";;",$event);

print "<tr><td width=30>";
print verdana();
print "<center>$info[0]</center>";
print "</td>";

print "<td width=220>";
print verdana();
print "$info[1]";
print "</td>";

print "<td width=220>";
print verdana();
print "$info[2]";
print "</td>";

print "<td width=20>";
print verdana();
print "<center>$info[3]</center>";
print "</td>";

print "<td width=150>";
print verdana();
print "$info[4]";
print "</td>";

print "<td width=120>";
print verdana();
print "$info[5]";
print "</td>";

print "<td width=40>";
print verdana();
print "<center>$info[6]</center>";
print "</td>";
print "</tr>";

endwhile;

i chce by poszczegolne tr wyswietlaly mi sie naprzemiennie w kolorach black red (obojetne!), jest mozliwosc zrobienia tego w samym php, czy potrzebny sql?questionmark.gif?

jak zmodyfikowac kod?? nie prosze byscie sami to zrobili ale dali jakies konstruktywne wskazowki biggrin.gif
GeoS
1. Przed petla ustawiasz licznik, np. :
Kod
$x = 0;


2. W petli robisz cos takiego:
Kod
if($x % 2 == 0) print "<tr bgcolor=#ff0000><td width=30>";

else print "<tr bgcolor=#000000><td width=30>";


3. Teraz ostatnia sprawa. Jesli tych wpisow nie jest zbyt duzo, to wystarczy, ze przed koncem petli wrzucisz:
Kod
$x++;
itsme
gajcy: ja chce te Pania z Twojego obrazka najlepiej w tych samych majteczkach smile.gif
domm
otóż to, trzeba w jakiś sposób sprawdzić czy linia jest parzysta.
ja to rozwiązałem:
Kod
if (is_int($i/2)) print '<tr bgcolor=#ff0000>...';

else print '<tr bgcolor=#000000>...';

ale nie o to mi chodzi. czyżby w php brakowało gotowej funkcji sprawdzającej parzystość liczby?
Seth
gajcy juz podal przyklad sprawdzania parzystosci liczby.
Kod
x % 2 == 0

% to znak dzielenia modulo w php ale takze i w C/C++ i Javie itp. jezykach
Jeszcze dla nie wtajemniczonych tongue.gif dzielenie modulo pozwala okreslic reszte z ddzielenia liczby przez inna. W naszym przypadku dzielac liczbe przez 2 otrzymujemy 0 - brak reszty - jezeli jest podzielna przez 2 czyli jest parzysta.
domm
może trochę to spłyciłem, chodziło mi o gotową fuknkcję typu:
Kod
if (is_even($x)) ...

bo skoro jest is_int (i cała reszta) to czemu nie is_even laugh.gif
oczywiście stosując modulo (mi również znane z C++ :wink: ) takie coś jest niepotrzebne, po prostu zaciekawił mnie sam fakt
pozdrowionka
mop506
hihi brzmi bardzo ladnie, mam nadizeje, ze bedzie dzialac. poki co to czarna magia, ale jak zaczne w tym grzebac to wszystko szybko sie zmieni biggrin.gif dzieki za tak szybka i fachowa odpowiedz biggrin.gif doceniam to biggrin.gif
scanner
Cytat
1. Przed petla ustawiasz licznik, np. : (...)

Ja tam wole usytawic $bgcolo = TRUE;
Potem sprawdzam if($bgcolor){ costam} else {drugiecostam}
I przed koncem petli tobie $bgcolor=!$bgcolor

Wydaje mi sie to troszkę wydajniejsze.
GeoS
Fakt, operujac na warstwie wyrazen logicznych aplikacja bedzie najwydajniejsza.
Ja podalem pierwszy z brzegu przyklad, ktory przyszedl mi akurat do glowy, bez jakis specjalnych rozkminek biggrin.gif
mop506
zrobilem tak jak razdil gajcy. wszystko pieknie wyglada, ale niech mi ktos jeszcze powie jak wsadzic do print'a funckej verdana() bo za cholere nie chce mi to dzialac sad.gif a nie chce mi sie teraz wszedzie przekopiowac font face.......

myslalem ze moze da sie to polaczyc [quote]print "<tr><td>".verdana()."</td>"[/quote]ale nie cholery nie chce dzialac. jestem w kropce.
ale przynajmniej juz wiem jak zastosowac funkcje if biggrin.gif[/quote]
GeoS
Twoj kod jest prawidlowy.

Jest tylko jedno ale: funkcja/procedura verdana chyba powinna miec dane wejsciowe.
mop506
wydaje mi sie ze wlasnie nie... mam utworzony plik style.inc i jest do niego relacja z filmy.php niby wszystko dzialalo do czasu tej zmiany z petla if

pliczek inc wyglada nastepujaco i nie potrzeba raczej zadnych danych wejsciowych
Cytat
<?
function verdana()
{
print "<font face=verdana size=1>";
}
?>
GeoS
No fakt, w tym wypadku jest nie do konca poprawny. Wrzuc to:
Kod
<?

function verdana()

{

return "<font face=verdana size=1>";

}

?>
mop506
tak, teraz juz dziala juz wszystko w pozadku biggrin.gif
LeWaR
Tak dla porównania:

Kod
$kolor1="dddddd";

$kolor2="ddddff";

if ($kolor==$kolor1)

{

    $kolor=$kolor2;

}

else

{

    $kolor=$kolor1;

}

print("<TR><TD bgcolor="$kolor" ></TD>n");


Do oceny.
Napiszcie co o tym sądzicie smile.gif

Pozdrawiam
LeWaR
DeyV
Ja piszę jeszcze krócej
Kod
$i=$i ? 0 : 1; ?>



bgcolor="<?=($i ? 'dddddd': 'ddddff') ?>"

2 linie zamiast 7 !! tongue.gif
Pianandrill
Ludzie z tym kolorowaniem wierszy to przeciez mozna jeszcze prościej.

$color=black;
//poczatek petli
if ($color==red) $color=black else $color=red;

echo"<p font-color=$color>" - z głowy, wiec ta linia pewnie nie do konca dobra..
...reszta kodu...
//konic petli

i po sprawie

pierwszy wiersz bedzie red a pozniej sie bedzie zmienail na czarny i z czarnego na czerwony, na zmiane...

podpowiem ze zamiast red mozna wstawic hexy (nie chodzi mi i wiedźmy winksmiley.jpg )
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.