Web ortamında çalışırken birçok durumda tabloların dinamik bir şekilde oluşturulmasına ihtiyaç duyarız. PHP tabanlı bir web sitesinde hücre birleştirilerek nasıl dinamik tablo yapılacağı anlatılmıştır.
Satır ve sütun birleştirerek HTML ile nasıl tablo yapılacağı HTML ile Tablo Birleştirme Örneği (COLSPAN & ROWSPAN) başlıklı yazıda anlatılmıştı. Şimdi ise birleştirilmiş tabloların PHP ile dinamik bir şekilde nasıl oluşturulacağı anlatılmıştır.
PHP ile Dinamik 3 Satır 4 Sütunlu Tablo Oluşturma
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <table border="1"> <?php $say=0; for ($satir=1;$satir<=3;$satir++) { echo '<tr>'; for ($sutun=1; $sutun<=4; $sutun++) { echo '<td>'.++$say.'</td>'; } echo '</tr>'; } ?> </table> |
Bunun sonucunda tarayıcıda görüntülenen kod şu şekilde olacaktır:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <table> <tr> <td>1</td> <td>2</td> <td>3</td> <td>4</td> </tr> <tr> <td>5</td> <td>6</td> <td>7</td> <td>8</td> </tr> <tr> <td>9</td> <td>10</td> <td>11</td> <td>12</td> </tr> </table> |
PHP ile Dinamik Sütun Birleştirme
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <table border="1"> <?php $say=0; for ($satir=1;$satir<=2;$satir++) { echo '<tr>'; for ($sutun=1; $sutun<=2; $sutun++) { if ($satir==1 && $sutun==1) { echo '<td colspan="2">'.++$say.'</td>'; $sutun++; } else { echo '<td>'.++$say.'</td>'; } } echo '</tr>'; } ?> </table> |
Bunun sonucunda HTML çıktısı aşağıdaki gibi olacaktır:
1 2 3 4 5 6 7 8 9 | <table> <tr> <td colspan="2">1</td> </tr> <tr> <td>2</td> <td>3</td> </tr> </table> |
PHP ile Dinamik Satır Birleştirme
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <table border="1"> <?php $say=0; for ($satir=1;$satir<=2;$satir++) { echo '<tr>'; for ($sutun=1; $sutun<=2; $sutun++) { if ($satir==1 && $sutun==1) { echo '<td rowspan="2">'.++$say.'</td>'; } else if ($satir==2 && $sutun==1) { echo '<td>'.++$say.'</td>'; $sutun++; } else { echo '<td>'.++$say.'</td>'; } } echo '</tr>'; } ?> </table> |
Satır birleştirme işleminde, birleştirilen bir sonraki satırı etkilediği için gelecek satırlar için de kural yazılması gerekmektedir. Bu durumda yukarıdaki PHP kodlarının HTML çıktısı aşağıdaki gibi olacaktır:
1 2 3 4 5 6 7 8 9 | <table> <tr> <td rowspan="2">1</td> <td>2</td> </tr> <tr> <td>3</td> </tr> </table> |
PHP ile Farklı Hücrelerde Dinamik Olarak Satır ve Sütun Birleştirme
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <table border="1"> <?php $say=0; for ($satir=1;$satir<=3;$satir++) { echo '<tr>'; for ($sutun=1; $sutun<=4; $sutun++) { if ($satir == 1 && $sutun == 3) { echo '<td colspan="2">'.++$say.'</td>'; $sutun++; } else if ($satir==2 && $sutun==2) { echo '<td rowspan="2">'.++$say.'</td>'; } else if ($satir==3 && $sutun==2) { echo '<td>'.++$say.'</td>'; $sutun++; } else echo '<td>'.++$say.'</td>'; } echo '</tr>'; } ?> </table> |
HTML çıktısı şu şekildedir:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <table> <tr> <td>1</td> <td>2</td> <td colspan="2">3</td> </tr> <tr> <td>4</td> <td rowspan="2">5</td> <td>6</td> <td>7</td> </tr> <tr> <td>8</td> <td>9</td> <td>10</td> </tr> </table> |
PHP ile Dinamik Olarak Aynı Hücrede Satır ve Sütun Birleştirme
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <table border="1"> <?php $say=0; for ($satir=1;$satir<=3;$satir++) { echo '<tr>'; for ($sutun=1; $sutun<=4; $sutun++) { if ($satir==1 && $sutun==1) { echo '<td colspan="2" rowspan="2">'.++$say.'</td> '; $sutun++; } else if ($satir==2 && $sutun==1) { $sutun++; } else echo '<td>'.++$say.'</td>'; } echo '</tr> '; } ?> </table> |
Yukarıdaki PHP kodunun HTML çıktısı şu şekildedir:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <table> <tr> <td colspan="2" rowspan="2">1</td> <td>2</td> <td>3</td> </tr> <tr> <td>4</td> <td>5</td> </tr> <tr> <td>6</td> <td>7</td> <td>8</td> <td>9</td> </tr> </table> |