Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Co 2 wiersz table ma miec pokolorowane tlo
-Ricco-
post 22.10.2011, 13:11:07
Post #1





Goście







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 to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
-Gość-
post 22.10.2011, 13:14:34
Post #2





Goście







uzyj % do obliczania reszty z dzielenia

na webmade.org > kurs php > ktoraj z pierwszych lekcji masz opisane wszystkie operatory
Go to the top of the page
+Quote Post
ficiek
post 22.10.2011, 13:16:33
Post #3





Grupa: Zarejestrowani
Postów: 28
Pomógł: 1
Dołączył: 9.09.2011
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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.

Ten post edytował ficiek 22.10.2011, 13:17:25
Go to the top of the page
+Quote Post
-Ricus-
post 22.10.2011, 13:17:20
Post #4





Goście







zamienilem / z % i nic nie dalo sad.gif
Go to the top of the page
+Quote Post
-Ricus-
post 22.10.2011, 13:19:22
Post #5





Goście








Niestety nie dziala sad.gif
Go to the top of the page
+Quote Post
-Ricus-
post 22.10.2011, 13:20:22
Post #6





Goście







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
Go to the top of the page
+Quote Post
Crozin
post 22.10.2011, 13:22:40
Post #7





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Zacznijmy od tego, że od takich rzeczy jest... CSS:
  1. selector:nth-child(odd) {
  2. background-color: red;
  3. }
Go to the top of the page
+Quote Post
-Ricus-
post 22.10.2011, 13:26:03
Post #8





Goście







Crozin, a mozesz jakos wyjasnic to co napisales?
Go to the top of the page
+Quote Post
Giluś
post 22.10.2011, 13:27:49
Post #9





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
-Ricus-
post 22.10.2011, 13:32:46
Post #10





Goście







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.
Go to the top of the page
+Quote Post
ficiek
post 22.10.2011, 13:33:13
Post #11





Grupa: Zarejestrowani
Postów: 28
Pomógł: 1
Dołączył: 9.09.2011
Skąd: Kraków

Ostrzeżenie: (0%)
-----


@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.

Ten post edytował ficiek 22.10.2011, 13:35:42
Go to the top of the page
+Quote Post
-Ricus-
post 22.10.2011, 13:38:19
Post #12





Goście







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
Go to the top of the page
+Quote Post
ficiek
post 22.10.2011, 13:42:35
Post #13





Grupa: Zarejestrowani
Postów: 28
Pomógł: 1
Dołączył: 9.09.2011
Skąd: Kraków

Ostrzeżenie: (0%)
-----


  1. background-color: red;


Ten post edytował ficiek 22.10.2011, 13:44:59
Go to the top of the page
+Quote Post
-Ricus-
post 22.10.2011, 13:42:36
Post #14





Goście







aaa juz widze. Blad w style="" bo zamiast background napisalem backgrond haha.gif ok dzieki za cierpliwosc;p
Go to the top of the page
+Quote Post
Astronovi
post 22.10.2011, 14:39:08
Post #15





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 14.06.2011

Ostrzeżenie: (0%)
-----


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
Powód edycji: [batman]: O bbcode zapomniał?
Go to the top of the page
+Quote Post
-Gość-
post 22.10.2011, 15:17:22
Post #16





Goście







tak, ale zostalo przeciez podane lepsze rozwiazanie z CSS
Go to the top of the page
+Quote Post
Xim2
post 22.10.2011, 15:29:44
Post #17





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 29.06.2010

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Xim2 22.10.2011, 15:31:09
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 08:53