У меня есть PHP, который вытаскивает записи MySQL в таблицу HTML. Заголовки таблиц по-прежнему видны, когда запрос не дает результатов, поэтому я хотел использовать функцию ЕСЛИ для отображения альтернативного сообщения во внешнем интерфейсе.
Мои пока ограниченные знания PHP означают, что я изо всех сил пытаюсь найти способ проверить результаты. Каждый метод, с которым я сталкивался в Интернете, заходил в тупик.
Кто-нибудь может увидеть, что мне не хватает, пожалуйста?
$result = mysqli_query($con,"SELECT * FROM stock WHERE (SKU='$SKUsearch1' AND Location='London Store') OR (SKU='$SKUsearch2' AND Location='London Store') OR (SKU='$SKUsearch3' AND Location='London Store') OR (SKU='$SKUsearch4' AND Location='London Store') OR (SKU='$SKUsearch5' AND Location='London Store') OR (SKU='$SKUsearch6' AND Location='London Store') OR (SKU='$SKUsearch7' AND Location='London Store') OR (SKU='$SKUsearch8' AND Location='London Store') OR (SKU='$SKUsearch9' AND Location='London Store') OR (SKU='$SKUsearch10' AND Location='London Store') OR (SKU='$SKUsearch11' AND Location='London Store') OR (SKU='$SKUsearch12' AND Location='London Store') ");
if (!$row['Location']) {
echo "<table class='availableTable' border='1'>
<tr>
<th>Location</th>
<th>Item</th>
<th>Availability</th>
</tr>";
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
{
echo "<tr>";
echo "<td>" . $row['Location'] . "</td>";
echo "<td>" . $row['Name'] . "</td>";
if (($row['Available']) > 0) {
echo "<td> In Stock </td>";
}
else {
echo "<td> Out of Stock </td>";
}
echo "</tr>";
}
echo "</table>";
}
else {
echo "<div class='availableText'>No instore stock information is currently available for this product.</div>";
}
Где определяется $row? Похоже, что он используется в операторе IF до того, как он определен
Я подозреваю, что @dustytrash справился с этим. Если нет, отредактируйте свой вопрос, включив в него вывод, который вы получаете.
@dustytrash Попался. Я искал способ получше. Ваше здоровье!






$ row ['Местоположение']$ row недоступен до цикла while
$result = mysqli_query($con,"SELECT * FROM stock WHERE (SKU='$SKUsearch1' AND Location='London Store') OR (SKU='$SKUsearch2' AND Location='London Store') OR (SKU='$SKUsearch3' AND Location='London Store') OR (SKU='$SKUsearch4' AND Location='London Store') OR (SKU='$SKUsearch5' AND Location='London Store') OR (SKU='$SKUsearch6' AND Location='London Store') OR (SKU='$SKUsearch7' AND Location='London Store') OR (SKU='$SKUsearch8' AND Location='London Store') OR (SKU='$SKUsearch9' AND Location='London Store') OR (SKU='$SKUsearch10' AND Location='London Store') OR (SKU='$SKUsearch11' AND Location='London Store') OR (SKU='$SKUsearch12' AND Location='London Store') ");
if (mysqli_num_rows($result)>0) {
echo "<table class='availableTable' border='1'>
<tr>
<th>Location</th>
<th>Item</th>
<th>Availability</th>
</tr>";
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
{
echo "<tr>";
echo "<td>" . $row['Location'] . "</td>";
echo "<td>" . $row['Name'] . "</td>";
if (($row['Available']) > 0) {
echo "<td> In Stock </td>";
}
else {
echo "<td> Out of Stock </td>";
}
echo "</tr>";
}
echo "</table>";
}
else {
echo "<div class='availableText'>No instore stock information is currently available for this product.</div>";
}
попробуйте mysqli_num_rows ($ результат)http://php.net/manual/en/mysqli-result.num-rows.php
Я настоятельно рекомендую изменить этот оператор SELECT на что-то вроде:
Location='London Store' AND SKU IN (....)