Установите значение по умолчанию в цикле while с помощью Php Mysqli

#php #mysqli

#php #mysqli

Вопрос:

Я новичок в объектно-ориентированном стиле mysqli и пытаюсь установить значение по умолчанию, если в базе данных нет данных для этой категории.

Это то, что у меня есть до сих пор

введите описание изображения здесь ‘R8 0 1.0’ должен быть в столбце R8

Мой код:

 <tr>
<td><?php echo $name; ?></td>
<td><?php echo $inv; ?></td>
<?php
    $stmtProd = $db -> prepare("SELECT riou.rIOu_Pr_code, riou.rIOu_boughtCase, riou.rIOu_boughtBottle FROM retail_items_ou riou INNER JOIN products pr ON (riou.rIOu_Pr_id = pr.Pr_id) INNER JOIN products_extent pe ON (riou.rIOu_Pr_id = pe.pE_Pr_id) WHERE riou.rIOu_rInOu_id = ? AND pr.Pr_category = '8 oz' ORDER BY pe.pE_individualArrange");
    $stmtProd -> bind_param('i',$id);
    $stmtProd -> execute();
    $stmtProd -> bind_result($code,$case,$bot);
    while($test = $stmtProd -> fetch()){
        if($test === null){
            echo '<td>Default Value</td>';
        }else{
            echo '<td>'.$code.' '.$case.'.'.$bot.'</td>';
        }
    }
    $x  ;
?>
</tr>
  

Вывод должен быть таким:
введите описание изображения здесь

Если statment не работает. Спасибо

Ответ №1:

Я бы просто выполнил проверку, чтобы увидеть, равен ли (например) код 0 (что, я полагаю, так и есть, если SQL возвращает пустое поле). Если это так, установите для переменной что-то другое.

 $code = ($code == 0) ? "Default value" : $code;
  

Сделайте это для каждого элемента, который вы хотите перепроверить, имеет значение. Если вам не нравятся троичные, вы, конечно, можете просто сделать это со стандартным случаем if.

 if(!$code)
{
    $code = "Default value";
}
  

Комментарии:

1. не работает. Кажется, что если категория пуста, она не запускает код внутри цикла while и переходит к следующей категории.

2. Если вы запустите этот запрос для пустой категории в SQL, например, через phpmyadmin, что он ответит? Конечно, это что-то вернет?

3. ‘R8 0 1.0’ — это только выходные данные в phpmyadmin

4. Будет ли это точно подпадать под переменную $code или войдет в $case или $bot? Не уверен, что здесь связано с where.