Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Co 2 wiersz w innym kolorze
Forum PHP.pl > Forum > Przedszkole
Snoopy
Powiem tak: Dane są w bazie, Na stronie reprezentowane są jak się domyślacie... w tabelce, i chcę żeby co 2 wiersz był innym kolorem wypełniony.

Biały
Szary
Biały
Szary
Biały
Szary
...
itp

ale nie bardzo wiem w jaki sposób skrypt miałby skumać jaki kolor wstawić teraz... wydaje mi sie ze przydalo by sie cos co by liczyło poszczególne linie... hmm... nie wiem... help smile.gif
Gość
  1. <?php
  2. $i = 1;
  3. //pocz petli 
  4. $i = -$i;
  5.  
  6. if ($i > 0) 
  7. {
  8.  $col = 'white';
  9. }
  10. else
  11. {
  12.  $col = 'gray';
  13. }
  14. //koniec
  15. ?>
Snoopy
nie bardzo to rozumiem smile.gif

mam cos takiego
  1. <?php
  2. while ($row = mysql_fetch_assoc($zmienna)) {
  3. echo '<tr><td>'.$row['pole1'].'</td><td>'.$row['pole2'].'</td></tr>';
  4. }
  5. ?>


i szczerze to nie wiem jak to ma współgrać z tym co napisałes
siemakuba
1. musisz wiedzieć który aktualnie przebieg robi pętla
2. za każdym przebiegiem musisz sprawdzać, czy liczba przebiegu jest parzysta czy nie
3. w zależności od tego czy parzysta czy nie dajesz inny kolor

  1. <?php
  2. $i = 0; // inicjujeszesz zmienna
  3.  
  4. while ($row = mysql_fetch_assoc($zmienna)) 
  5. {
  6. $color = ($i % 2) ? '#FFFFFF' : '#CCCCCC'; //sprawdzasz czy parzysta i ustawiasz kolor
  7. echo '<tr style="background-color:'.$color.'"><td>'.$row['pole1'].'</td><td>'.$row['pole2'].'</td></tr>';
  8. $i++; // inkrementujesz zmienną
  9. }
  10. ?>


pozdr.
Snoopy
hmm w sumie dosyć proste

ale pierwszy raz spotykam sie z takim zapisem:
$color = ($i % 2) ? '#FFFFFF' : '#CCCCCC';

znak zapytania i dwukropek? dziwne, w tym wypadku oznacza to tyle ze jesli wynik bedzie parzysty to wybierze jedną opcje a jak nieparzysty to inną opcje, ale ogolnie to nie wiem jak to dziala , dzieki ze wogule dziala smile.gif
nospor
Cytat
znak zapytania i dwukropek? dziwne, w tym wypadku oznacza to tyle ze jesli wynik bedzie parzysty to wybierze jedną opcje a jak nieparzysty to inną opcje, ale ogolnie to nie wiem jak to dziala

http://pl.php.net/manual/pl/language.opera....comparison.php
Gość
Ja tak robie w calym moim projekcie :

w petli for/while gdzie wyswietlam dane z bazy daje ifa:
  1. <?php
  2. $html.='<tr class="';
  3. if(isset($class) && $class=="kolor1") { 
  4. $class="kolor2";
  5. } else {
  6. $class="kolor1";
  7. }
  8. $html.=$class .'">';
  9. ?>

a w stylach (zeby za kazdym razem nie zmieniac, jak sie kolorki nie spodobaja)
  1. tr.kolor1 {background-color: #FAEBD7; }
  2. tr.kolor2 {background-color: #F0F8FF; }

Oczywiscie sposob @siemakuby jest o tyle lepszy, ze mozna dodac switcha i rozszerzyc kolorownie wierszy na wiecej niz 2 kolory
wlq
za duzo cyferek i literek, trzeba sobie upraszczac zycie jak najbardziej:
  1. <?php
  2. $i = 0;
  3. while ($row = mysql_fetch_array($result)) 
  4. {
  5. $color = ($i % 2) ? 'class1' : 'class2'; //ustawianie stylu
  6. echo '<tr style="$color"><td>'.$row['pole1'].'</td><td>'.$row['pole2'].'</td></tr>';
  7. $i++;
  8. }
  9. ?>
php programmer
ale kombinujecie

  1. <?php
  2. while ($row = mysql_fetch_assoc($zmienna)) {
  3. $parity = !$parity;
  4. $color = $parity ? 'silver' : 'white';
  5. echo '<tr bgcolor="'.$color.'"><td>'.$row['pole1'].'</td><td>'.$row['pole2'].'</td></tr>';
  6. }
  7. ?>
Gość
@php programmer - twoim sposobem jak masz w projekcie 100 tabel i kolory ci sie nie spodobaja to trzeba bedzie wszystkie pliki przerabiac. Trzeba dzialac na stylach - wtedy jest najwygodniej modyfikowac
Bastion
php programmer ma racje co do części _PHP_

lepiej i szybciej tak jak podal :

  1. <?php
  2. $parity = !$parity;
  3. $class = $parity ? 'stylA' : 'stylB';
  4. ?>


smile.gif
skowron-line
przed petla ustawiam
  1. <?php
  2. $kolor = TRUE;
  3. ?>

a w petli
  1. <?php
  2. $kolor = !$kolor;
  3.  if($kolor == TRUE)
  4. {
  5. $bgcolor = 'silver';
  6. }
  7.  else
  8. {
  9. $bgcolor = 'white';
  10. }
  11.  
  12. echo"<tr bgcolor=$bgcolor>....";
  13. ?>


pozdrawiam
Gość
A czy ktos moze mi wytlumaczyc co oznacza ten zapis :
$parity = !$parity;
a dokladniej jak to sie zachowuje w petli.
Bastion
@skowron-line, nie lepiej tak ?

  1. <?php
  2. $bgcolor = ($kolor = !$kolor) ? 'silver' : 'white';
  3. ?>
skowron-line
no w sumie ale to prawie to samo tylko kodu mniej
Snoopy
"Rozkręcili się... chłopcy"

Swoje zrobiłem dzieki zapisowi siemakuby biggrin.gif
ale musze przyznac ze macie niezlą wyobraznie... w sumie najprosciej i najprosciej (do zrozumienia) to uzycie TRUE i FALSE. Jeśli chodzi o style to oczywiste jest to ze ich uzycie uprości znacznie całą zabawę.
Lee
Ja mam też pytanie związane z tematem otóż mam tabelę w bazię danych zawierającą nazwy kategorii od katalogu stron, i teraz chcę aby wyświetlało je tak

Kategoria x | Kategoria x=x+1
Kategoria x=x+1 | Kategoria x=x+1
tzn dwie kategorie w jednej lini...

chyba wiadomo o co chodzi winksmiley.jpg
Może się mylę co do pasowania tego to tego tematu ale chyba nie odbiega za daleko winksmiley.jpg
nospor
http://forum.php.pl/index.php?act=ST&f...t=0#entry185524
i wiele innych tematow na forum... prosze uzywac wyszukiwarki
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.