Предупреждение: mysqli_fetch_array () ожидает, что параметр 1 будет mysqli_result, логическим значением, заданным в c: \ xampp \ htdocs \ kurinchi \ kkmalar.php в строке 41

Я не могу понять, что не так в этом коде. Поскольку запрос выполняется, и вставка также работает, но сообщение об ошибке показывает:

Предупреждение: mysqli_fetch_array () ожидает, что параметр 1 будет mysqli_result, логическим значением, заданным в C: \ xampp \ htdocs \ kurinchi \ kkmalar.php в строке 41

$q = intval($_GET['q']);
$availability = isset($_GET['availability']);
$con = mysqli_connect('localhost','root','','kurinchi');

if (!$con) {
    die('Could not connect: ' . mysqli_error($con));
}

mysqli_select_db($con,"ajax_demo");
$sql="UPDATE rooms SET availability=(availability-1) WHERE ID = (SELECT ID from (SELECT * from rooms WHERE ID = '".$q."')AS innerResult)" ;
$result = mysqli_query($con,$sql);

if($result === FALSE) { 
    die(mysql_error()); 
}

echo "<table>
<tr>
    <th>ROOM TYPE</th>
    <th>AC TYPE</th>
    <th>PRICE</th>
    <th>AVAILABILITY</th>
    <th>BOOK </th>
</tr>";

while($row = mysqli_fetch_array($result)) {
    echo "<tr>";
    echo "<td>" . $row['room_type'] . "</td>";
    echo "<td>" . $row['ac_type'] . "</td>";
    echo "<td>" . $row['price'] . "</td>";
    echo "<td>" . $row['availability'] . "</td>";
    echo "<td>" . $row['booking_status'] . "</td>";
    echo "</tr>";
}

echo "</table>";
mysqli_close($con);

Здесь вы ОБНОВЛЯЕТЕ записи, поэтому mysqli_query возвращает true только в случае успеха. Вы сделали запрос, который для начала не вернул никаких записей - потому что это не то, что делают запросы UPDATE - но вы все равно пытаетесь получить записи принести из результата, что для начала не имеет смысла.

misorude 26.10.2018 08:49
1
1
5 049
1

Ответы 1

Попробуйте это после mysqli_query()

if (!$result) {
    printf("Error: %s\n", mysqli_error($con));
    exit();
}

@KurinchiMalar попробуйте приведенный выше код

suvojit_007 26.10.2018 09:15

Другие вопросы по теме