За последние 24 часа нас посетили 22632 программиста и 1017 роботов. Сейчас ищут 679 программистов ...

Отрисовка html таблицы средствами PHP, циклы

Тема в разделе "Прочие вопросы по PHP", создана пользователем Yanzi, 20 окт 2020.

  1. Yanzi

    Yanzi Новичок

    С нами с:
    20 окт 2020
    Сообщения:
    2
    Симпатии:
    0
    Доброго времени суток. Недавно начал изучать PHP и все с ним связанное. Задание: создать таблицы сложения и умножения. Написал данный код
    PHP:
    1. $rows = 9;
    2. $cols = 9;
    3. echo '<table border="1"> <th> </th>'; //пустая ячейка в левом верхнем углу
    4. for ($td=1; $td<=$cols; $td++){echo '<td style="color:black;background-color:Yellow"> <b> <center>'. $td . '</b></center></td>';} //закрашивание верхней строки
    5. for ($tr=1; $tr<=$rows; $tr++){
    6.     echo '<tr>';
    7.     for ($td=0; $td<=$cols; $td++){
    8.        
    9.             if ($td===0){
    10.                 echo '<th style="color:black;background-color:yellow">'. $tr .'</th>'; //закрашивание левого ряда
    11.             }
    12.             else{
    13.                 echo '<td>'. "$tr &times; $td = ".'<b>'. $tr*$td.'</b>' .'</td>'; //значения
    14.             }
    15.     }
    16.     echo '</tr>';
    17. }
    18. echo '</table>';
    Проблема в том, что при замене в 14й строке знака умножения на знак сложения значения перестают записываться в ячейки таблицы и выводятся в другое место, хотя, вроде бы, все должно работать.
    В чем ошибка и как её исправить?
     
  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    См. «приоритет операторов». Как исправить, думаю, догадаешься сам, если в школе учился.
    --- Добавлено ---
    Зачем эта нагрузка?
    PHP:
    1. if ($td===0){
    2.     echo '<th style="color:black;background-color:yellow">'. $tr .'</th>'; //закрашивание левого ряда
    3. }
    4. else{
    Размести перед циклом без ветвления.
    --- Добавлено ---
    P.S. В echo можно указывать несколько параметров через запятую. А еще есть альт. синтаксис echo и алг. конструкций ;)
     
    Yanzi нравится это.
  3. Yanzi

    Yanzi Новичок

    С нами с:
    20 окт 2020
    Сообщения:
    2
    Симпатии:
    0
    Ошибку исправил, заработало, спасибо! Но не понял, откуда берется вторая операция, там же только сложение? Или инкремент в условии цикла тоже участвует в распределении приоритетов операций?
    По поводу лишней нагрузки согласен, исправлю, просто хотелось что бы все заработало сначала.
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Какая вторая операция?