Как скрыть, если значение результата = 0 - PullRequest
0 голосов
/ 02 октября 2019

Вот мое кодирование, я хочу скрыть результат, если значение = 0, как изменить код

ниже приведен код

$lscSql = "SELECT item_name,qty FROM lsc JOIN item on item.item_id = lsc.item_id";

$lscResult = $connect->query($lscSql);
$lsc = $lscResult->fetch_all();
for ($x = 0; $x < count($lsc); $x++) {
    $check = true;
    $result = $connect->query($AllQtySql);
    while ($row = $result->fetch_array()) {
        if ($row['total'] != NULL) {
            $item = "";
            //(int) $row['total'] <= (int) $lsc[$x][1] &&
            if ($row['item_name'] == $lsc[$x][0] && $check == true && $row['location_name'] == $location[1]) {
                $num = count($lsc);
                $table .= "<tr>
                                <th colspan='" . $num . "'>" . $row['item_name'] . "</th>
                           </tr><tr>";
                $check = false;
            }

            if ($row['item_name'] == $lsc[$x][0] && $row['location_name'] == $location[1]) {
                $table .= "
                                    <td>" . $row['device_name'] . " (";
                if ((int) $row['total'] <=  (int) $lsc[$x][1]) {
                    $table .= "<span style='color:red'>" . $row['total'] . "</span>)</td>";
                } else {
                    $table .= $row['total'] . ")</td>";
                }
            }
        }
    }
}
$table .= "</tr></tbody></table>";
echo $table;

Всемне нужно, чтобы скрыть результат, если значение = 0,

enter image description here

Ответы [ 2 ]

0 голосов
/ 02 октября 2019

Я думаю, что самое простое решение - изменить запрос, чтобы исключить элементы с общим количеством 0. Предположим, что столбец total находится в таблице item, ваш запрос $lscSql должен быть изменен с:

SELECT item_name,qty FROM lsc JOIN item on item.item_id = lsc.item_id;

на

SELECT item_name, qty FROM lsc JOIN item ON (item.item_id = lsc.item_id) WHERE item.total = 0;

И для предотвращения проблем с записямив lsc удалено, вы, вероятно, должны использовать LEFT JOIN вместо:

SELECT item_name, qty FROM lsc
  LEFT JOIN item ON (item.item_id = lsc.item_id)
  WHERE item.total = 0;
0 голосов
/ 02 октября 2019

В основном вам нужно проверить количество товара, и если оно равно 0, выведите пустое значение <td> вместо device_name и total. Если я правильно понял ваш код, замена этого кода:

if ($row['item_name'] == $lsc[$x][0] && $row['location_name'] == $location[1]) {
    $table .= "<td>" . $row['device_name'] . " (";
    if ((int) $row['total'] <=  (int) $lsc[$x][1]) {
        $table .= "<span style='color:red'>" . $row['total'] . "</span>)</td>";
    } else {
        $table .= $row['total'] . ")</td>";
    }
}

на этот код должен работать:

if ($row['item_name'] == $lsc[$x][0] && $row['location_name'] == $location[1]) {
    if ($row['total'] == 0) {
        $table .= "<td></td>";
    }
    else {
        $table .= "<td>" . $row['device_name'] . " (";
        if ((int) $row['total'] <=  (int) $lsc[$x][1]) {
            $table .= "<span style='color:red'>" . $row['total'] . "</span>)</td>";
        } else {
            $table .= $row['total'] . ")</td>";
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...