tyukavin_denis
@tyukavin_denis
web developer

Как скрывать столбец таблицы, которая выводиться с помощью php?

Подкиньте, пожалуйста идею с реализацией.

Есть таблица в SQL с несколькими столбцами (наименование, свойства (их несколько), цена).
Некоторые из свойств (то есть целый столбец) могут быть заполнены нулями.
Ниже кусок кода вывода:

// Выводим заголовок таблицы
    echo '<table class="table" style="max-width: 100%; min-width: 75%;"><thead><tr><td>Наименование</td><td>A</td><td>B</td><td>C</td><td>Цена</td></thead><tbody>';
    
    // Перебираем значния массива
    foreach ($res as $row){
        // Наименование
        $name = $row['item-name'];
        // Свойства А, В, С
        $a = $row['a'];
        $b = $row['b'];
        $c = $row['c'];
        // Цена
        $price = $row['price-rozn'];
        echo "<tr>";
        // Вывод всех значений в результирующую таблицу
        echo "<td>$name</td><td>$a</td><td>$b</td><td>$c</td><<td>$price</td>";
        echo "</tr>";
    }
    
    // Закрываем таблицу
    echo '</tbody></table>';


Как не выводить весь столбец А если его значения 0.
Понимаю как не выводить эти ячейки, не понимаю как физически убрать столбец А из заголовка.
  • Вопрос задан
  • 416 просмотров
Решения вопроса 1
Blacknife
@Blacknife
I born, raised...
В вашем случае проще всего 2 раза пройтись циклом по всем элементам:

$displayA = $displayB = $displayC = false;

foreach ($res as $row) {
    if ($displayA && $displayB && $displayC) {
        break;
    }
    if ($row['a'] > 0) {
        $displayA = true;
    }
    if ($row['b'] > 0) {
        $displayB = true;
    }
    if ($row['c'] > 0) {
        $displayC = true;
    }
}

echo '<table class="table" style="max-width: 100%; min-width: 75%;"><thead><tr><td>Наименование</td>';
if ($displayA) {
    echo '<td>A</td>';
}
if ($displayB) {
    echo '<td>B</td>';
}
if ($displayC) {
    echo '<td>C</td>';
}
echo '<td>Цена</td></thead><tbody>';

foreach ($res as $row) {
    echo '<tr>';
    echo '<td>' . $row['item-name'] . '</td>';
    if ($displayA) {
        echo '<td>' . $row['a'] . '</td>';
    }
    if ($displayB) {
        echo '<td>' . $row['b'] . '</td>';
    }
    if ($displayC) {
        echo '<td>' . $row['c'] . '</td>';
    }
    echo '<td>' . $row['price-rozn'] . '</td>';
    echo '<tr>';
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
AleksandrB
@AleksandrB
Совсем недавно вывел "Hello world"
If($a != '0'){
echo "<tr>";
        // Вывод всех значений в результирующую таблицу
        echo "<td>$name</td><td>$a</td><td>$b</td><td>$c</td><<td>$price</td>";
        echo "</tr>"
}

На пхп давненько не кодил, мог в ситнтаксисе ошибиться
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы