#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.