Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] - problem ze zrozumieniem skryptu, Skryt generujący tabele z bezpiecznymi kolorami
-pangeon-
post
Post #1





Goście







Jestem początkującym, jestem na etapie nauki czytania kodu PHP.

W tej korzystam z podręcznika "Praktyczne Projekty PHP" W. Gazdy.
Owy Pan przedstawia w jednym z listingów książki następujący skrypt:

  1. <table>

  1. <?php
  2. $kody = array('00', '33', '66', '99', 'CC', 'FF');
  3. $kolory = array();
  4. for ($i = 0; $i < 6; $i++) {
  5. for ($j = 0; $j < 6; $j++) {
  6. for ($k = 0; $k < 6; $k++) {
  7. $kolory[] = $kody[$i] . $kody[$j] . $kody[$k];
  8. }
  9. }
  10. }
  11. $kolumny = 6;
  12. $ile = count($kolory);
  13. for ($i = 0; $i < $ile; $i++) {
  14. if ($i % $kolumny == 0) {
  15. echo '<tr>' . "\n";
  16. }
  17. echo '<td class="kolor" style="background: #';
  18. echo $kolory[$i];
  19. echo '">';
  20. echo '</td>' . "\n";
  21. echo '<td>';
  22. echo $kolory[$i];
  23. echo '</td>' . "\n";
  24. if ($i % $kolumny == $kolumny - 1) {
  25. echo '</tr>' . "\n";
  26. }
  27. }
  28. ?>

  1. </table>


Mniej więcej rozumiem jak zostaje wegerowana ta tabelka, moje zdziwienie budzą tylko z warunki z modulo

  1. if ($i % $kolumny == 0) {
  2. echo '<tr>' . "\n";


oraz

  1. if ($i % $kolumny == $kolumny - 1) {
  2. echo '</tr>' . "\n";


Jak mam to czytać i jak to się dzieje, że tabela zostaje pogrupowana w kolumny?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
peter13135
post
Post #2





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


0%6 = 0
1%6 = 1
2%6 = 2
3%6 = 3
4%6 = 4
5%6 = 5
6%6 = 0
7%6 = 1
itd.

Jak widać, 0 pojawia się co szósty raz (co szósty, bo $kolumna=6)

Po prostu co szósty "przebieg pętli", dodawane jest <tr> <td>dane</td><td>inne dane </td> </tr>
a w pozostałych "przebiegach" są dodawane same komórki, bez tr'ów


--------------------
:)
Go to the top of the page
+Quote Post
-pangeon-
post
Post #3





Goście







Problem chyba jest w tym, że nie bardzo rozumiem, co oznacza dokładnie operator mudolu.
0 podzielone przez 6 nie daje reszty, ale 1 podzielone 6 też nie. Żle myślę?

Niemniej dziękuje za pomoc, postaram się dokładniej zdadać problem smile.gif

pozdr.
Go to the top of the page
+Quote Post
peter13135
post
Post #4





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


Cytat
0 podzielone przez 6 nie daje reszty, ale 1 podzielone 6 też nie

0 dzielone przez 6, daje resztę 0
1 dzielone przez 6 daje resztę 1

Nie ma tak, że "nie dają resztę", zawsze jest reszta, może być ona równa 0, lub mieć inną wartośc dodanią.

Ten post edytował peter13135 27.09.2012, 09:55:32


--------------------
:)
Go to the top of the page
+Quote Post
-pangeon-
post
Post #5





Goście







By nie wyjść na idiotę, dodam tylko, że matematyka się przydaje humonistom - programistom tongue.gif

0:6 to 0 ale 1:6 to 1 bo:

1 : 6 = 0, reszty 1

1 = 0 · 6 + 1


Jakby ktoś miał podobny problem, proszę sprawdzić.
http://www.math.edu.pl/narzedzia.php?opcja=podzielnosc-liczb

albo napisać sobie echo wyświetlające modulo

Dodam tylko, że z innymi rzeczami radzę sobie tongue.gif

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 Aktualny czas: 21.08.2025 - 06:28