Подсказка "Вывод таблиц в одном цикле".

Опубликовано пользователем Бессонов Л.В. 01.03.2010г.

То с чего Вы начали при выполнении задания 1(1) выглядит примерно так:

  1. <?php
  2. print "<table border='1'>";
  3. print "<tr>";
  4. for ($i=1; $i<=100; $i++){
  5. print "<td>$i</td>";
  6. }
  7. print "</tr>";
  8. print "</table>";
  9. ?>

При этом получили таблицу из одной строки, содержащей 100 ячеек. Так произошло, потому что открыв строку тегом tr Вы в цикле выводили 100 ячеек.

Модифицируем скрипт следующим образом:

  1. <?php
  2. print "<table border='1'>";
  3. for ($i=1; $i<=100; $i++){
  4. print "<tr>";
  5. print "<td>$i</td>";
  6. print "</tr>";
  7. }
  8. print "</table>";
  9. ?>

Теперь получилась таблица с одним столбцом, состоящим из 100 строк, потому что на каждом витке цикла открывается строка тегом tr, выводится ячейка с числом и затем строка закрывается закрывающим тегом tr.

Теперь наша задача — сделать так, чтобы открытие и закрытие строки таблицы происходило не на каждом шаге цикла, а лишь на некоторых (строка должна открываться на шагах 1, 11, 21, ...; и закрываться на шагах 10, 20, 30, ...). Для этого в строках 4 и 6 последнего листинга можно ввести условие, то есть чтобы вывод открывающих и закрывающих тегов tr происходил лишь при выполнении этих условий.

  1. <?php
  2. print "<table border='1'>";
  3. for ($i=1; $i<=100; $i++){
  4. if (<некое условие>){
  5. print "<tr>";
  6. }
  7. print "<td>$i</td>";
  8. if (<некое другое условие>){
  9. print "</tr>";
  10. }
  11. }
  12. print "</table>";
  13. ?>

Чтобы построить условие, обратитесь к теме «Операции$raquo; методического пособия. Обратите внимание на то, что в php как и в C оператор сравнения на равенство имеет вид '=='!

Вы также заметите что Ваш скрипт выводит html-текст одной строкой (исходный текст страницы). Чтобы исходный html-текст стал более читаемым, используйте специальные символы перевода строки и табуляции. Например, так:

  1. <?php
  2. print "<table border='1'>\n";
  3. for ($i=1; $i<=100; $i++){
  4. if (<некое условие>){
  5. print "\t<tr>\n";
  6. }
  7. print "\t\t<td>$i</td>\n";
  8. if (<некое другое условие>){
  9. print "\t</tr>\n";
  10. }
  11. }
  12. print "</table>\n";
  13. ?>

Баннер SGU.RU