Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Co 2 wiersz table ma miec pokolorowane tlo
Forum PHP.pl > Forum > Przedszkole
Ricco
Witam, prosze o pomoc. Probuje uzyskac efekt pokolorowania tla co drugiego wiersza tabeli. Mam nawet juz taki pomysl ze przed petla while zdefiniuje zmienna $i = 0
, a wtedy po kazdym nastepnym rekordzie bede ja inkrementowal: $i++, a nastepnie w <tr> dam takie cos:
  1. <tr <?php if($i / 2 <= 0){?> style="background:#000;"> <?php } ?>


Lecz niestety to nie działa. Mógłby ktoś pomóc udoskonalić tę idee?

tak wyglada moj kod:
  1. $i = 0;
  2. while($row = mysql_fetch_array($result)){
  3. ?>
  4. <tr <?php if($i / 2 >= 0){?> style="backgrond:#000;" <?php } ?> >
  5. <td width="300"><?php echo $row['name']; ?></td>
  6. <td width="100"><center><?php echo $row['votes']; ?></center></td>
  7. <td width="50"><center><a href="<?php echo $row['link']; ?>">Odsłuch</a></center></td>
  8. <td width="100"><center><a href="php/vote.php?id=<?php echo $row['id']; ?>">Głosuj</a></center></td>
  9. </tr><?php $i++ ?>
  10. <?php } ?>
Gość
uzyj % do obliczania reszty z dzielenia

na webmade.org > kurs php > ktoraj z pierwszych lekcji masz opisane wszystkie operatory
ficiek
W warunku:
  1. if ($i % 2==0)
  2. {
  3. echo 'LOL';
  4. }
  5.  


% to reszta z dzielenia. W powyższym przypadku instrukcja wykona się dla liczb parzystych.
Ricus
zamienilem / z % i nic nie dalo sad.gif
Ricus

Niestety nie dziala sad.gif
Ricus
mam to tak zrobione:
  1. <?php
  2. $i = 0;
  3. while($row = mysql_fetch_array($result)){
  4. ?>
  5. <tr <?php if($i % 2==0){?> style="backgrond:#000;" <?php } ?>>
  6. <td width="300"><?php echo $row['name']; ?></td>
  7. <td width="100"><center><?php echo $row['votes']; ?></center></td>
  8. <td width="50"><center><a href="<?php echo $row['link']; ?>">Odsłuch</a></center></td>
  9. <td width="100"><center><a href="php/vote.php?id=<?php echo $row['id']; ?>">Głosuj</a></center></td><?php $i++ ?>
  10. </tr>
  11. <?php } ?>

i wciaz nie dziala
Crozin
Zacznijmy od tego, że od takich rzeczy jest... CSS:
  1. selector:nth-child(odd) {
  2. background-color: red;
  3. }
Ricus
Crozin, a mozesz jakos wyjasnic to co napisales?
Giluś
Na takiej samej zasadzie to działa, jak ty chciałeś zrobić, tylko z użyciem php..
Ustawiasz sobie tam swoją nazwę i będzie on innego koloru co drugi wiersz (czy to bedzie pobierane z mysql czy normalnie bedziesz pisał w html ZAWSZE co drugi tekst bedzie innego koloru (lub czegoś innego, np podkreślony))


Pozdrawiam.
Ricus
Nie koloruje, ale to w css u mnie nie ma praktycznego zastosowania bo przeciez my wywala cala ta tabele z while wiec jesli dam w tym tr w while klase czerwony to i tak kazdy bedzie pokolorowany.
ficiek
@Ricus:
Najpierw napisałem, potem pomyslałem.

Co do rozwiązania użytkownika Giluś tutaj o tym jest:
http://www.w3schools.com/cssref/sel_nth-child.asp

Ale tak jak zrobiłeś Ty też powinno działać.

Zobacz w kodzie html wyświetlonej strony gdzie jest błąd.
Ricus
no w kodzie jest wszystko ladnie:

  1. <tr style="backgrond:#000;" >
  2. <td width="300">Pitbull - Rain Over Me</td>
  3. <td width="100"><center>0</center></td>
  4. <td width="50"><center><a href="http://www.youtube.com/watch?v=SmM0653YvXU&amp;ob=av2e">Odsłuch</a></center></td>
  5. <td width="100"><center><a href="php/vote.php?id=8">Głosuj</a></center></td> </tr>
  6. <tr >
  7.  
  8. <td width="300">Shakira - Rabiosa</td>
  9. <td width="100"><center>0</center></td>
  10. <td width="50"><center><a href="http://www.youtube.com/watch?v=a5irTX82olg&amp;ob=av2e">Odsłuch</a></center></td>
  11. <td width="100""><center><a href="php/vote.php?id=9">Głosuj</a></center></td> </tr>
  12. <tr style="backgrond:#000;" >
  13. <td width="300">Sak Noel - Loca People</td>
  14.  
  15. <td width="100"><center>0</center></td>
  16. <td width="50"><center><a href="http://www.youtube.com/watch?v=NtN5lJ0CpsY">Odsłuch</a></center></td>
  17. <td width="100"><center><a href="php/vote.php?id=10">Głosuj</a></center></td> </tr>
  18. </table>


ale czemu nie dziala na stronie to nwm
ficiek
  1. background-color: red;
Ricus
aaa juz widze. Blad w style="" bo zamiast background napisalem backgrond haha.gif ok dzieki za cierpliwosc;p
Astronovi
jeśli tylko wyswietlasz z bazy to użyj zwykłego diva

np.
  1. if($w = mysql_query($zapytanie))
  2. {
  3. while($wiersz = mysql_fetch_array($w))
  4. {
  5. if($wiersz != NULL)
  6. {
  7. $a = $a + 1;
  8. if($a % 2 ==TRUE)
  9. {
  10. print "<tr>";
  11. print "<td> <div id=\"a1\"> ".$a."</div> </td>";
  12. print "<td> <div id=\"a1\">".$wiersz['poz1']."</div> </td>";
  13. print "<td> <div id=\"a1\">".$wiersz['poz2']."</div> </td>";
  14. print "<td> <div id=\"a1\">".$wiersz['poz3']."</div> </td>";
  15. print "</tr>";
  16. }
  17.  
  18. if($a % 2 ==FALSE)
  19. {
  20. print "<tr>";
  21. print "<td> <div id=\"a2\"> ".$a."</div> </td>";
  22. print "<td> <div id=\"a2\">".$wiersz['poz1']."</div> </td>";
  23. print "<td> <div id=\"a2\">".$wiersz['poz2']."</div> </td>";
  24. print "<td> <div id=\"a2\">".$wiersz['poz3']."</div> </td>";
  25. print "</tr>";
  26. }
  27.  
  28. }
  29. }
  30. }


w pilku ccs dajesz np.:
#a1
{
background: red;
}

#a2
{
background: green;
}

% - czyli suma modul2 powoduje, że na przemian "kolorujesz" wiersze przyste lub nieparzyste
Gość
tak, ale zostalo przeciez podane lepsze rozwiazanie z CSS
Xim2
Jejku...
Robicie problem z rzeczy którą się załatwia praktycznie jedną linijką w CSS!

  1. table tr:nth-of-type(2n+1) {
  2. background-color: #eee;
  3. }


Poza tym HTML nie służy do definiowania wyglądu (<center>) tylko CSS.
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.