2016-01-08 3 views
1

Я не создавал проверку, проверяю базу данных, если DATE, TIME и COTTAGE уже зарезервированы/доступны. Если какой-либо из них недоступен, он будет сохранен в базе данных.Как проверить несколько входов из базы данных?

Вот код, который я сделал:

<?php 
 
require_once("config.php"); 
 
require_once("includes/inputs.php"); 
 

 
\t //fetching the data of the cottage 
 
\t $sql = "SELECT * FROM cottage WHERE id='$cottage'"; 
 
    $result = mysqli_query($link, $sql); 
 
    $row = mysqli_fetch_array($result); 
 
    $name_cottage = $row["name"]; 
 

 
    //fetching the data of the time 
 
    $sql = "SELECT * FROM rate WHERE id='$daytime'"; 
 
    $result = mysqli_query($link, $sql); 
 
    $row = mysqli_fetch_array($result); 
 
    $daytime_name = $row["name"]; 
 

 
    //validating whether the date, time and cottage is already available in the cottage 
 
    $validate = "SELECT * FROM reserve WHERE date = '$date' AND daytime = '$daytime' AND cottage = '$cottage'"; 
 
    $qry = mysqli_query($link, $validate); 
 
    $getrow = mysqli_num_rows($qry); 
 

 
    if($getrow > 0){ 
 
     echo " $date, $daytime_name and $name_cottage has already been taken!"; 
 
     return false; 
 
    } 
 
    else{ 
 
\t $sql = "INSERT into reserve (name, address, contact, email, date, time, ahc, chc, cottage, promo, total) values ('$name','$address','$contact', '$email', '$date', '$daytime', '$ahc', '$chc', '$cottage', '$promo', '$calc')"; 
 
\t $result = mysqli_query($link,$sql); 
 
\t echo " $date, $daytime_name and $name_cottage is successfully reserved!"; 
 
\t return true; 
 
} 
 
?>

Но я имею ошибку:

Warning: mysqli_num_rows() ожидает параметр 1, чтобы быть mysqli_result, булево учитывая в C: \ xampp \ htdocs \ бронирование \ formup.php в строке 22

и строка 22 -

$getrow = mysqli_num_rows($qry); 

но когда я использую этот множественный запрос на выборку:

$validate = "SELECT * FROM reserve WHERE date = '$date'"; 
 
    $validate = "SELECT * FROM reserve WHERE daytime = '$daytime'"; 
 
    $validate = "SELECT * FROM reserve WHERE cottage = '$cottage'";

он сохранит в базу данных, но когда коттедж имеют один и тот же коттедж на базе не будет экономить ...

, пожалуйста, помогите мне исправить это ....

+0

Похоже, ваш запрос не удается. Добавьте 'if (! $ Qry) echo mysqli_error ($ link);' после вызова 'mysqli_query' и проверьте вывод. –

+0

Что такое '$ date' в запросе? – Nehal

+0

ввод моей даты – Joyce

ответ

1

По документации запроса msyql:

Возвращает FALSE при сбое. Для успешных запросов SELECT, SHOW, DESCRIBE или EXPLAIN mysqli_query() вернет объект mysqli_result. Для других успешных запросов mysqli_query() вернет TRUE.

Link

Итак, как я понимаю запрос успешен или нет успешным истина/ложь возвращается еще объект mysqli_result. Поэтому я думаю, что ваш запрос не имеет возвращаемого значения. Пробовал выполнить sql-запрос в db и проверить, возвращены ли ожидаемые значения?

+0

oh спасибо, что он уже работает – Joyce

0

mysqli_num_rows() возвращает true при успешном выполнении и false при ошибке; для выбора, отображения и т. д. mysqli_query возвращает объект результата. мне может понадобиться, чтобы увидеть все коды, чтобы получить лучшее представление о том, что случилось там, но попробуйте это:

$qry = mysqli_query($link, "SELECT * FROM reserve WHERE date = '$date' AND daytime = '$daytime' AND cottage = '$cottage'"); 
 

 
$getrow = mysqli_num_rows($qry); 
 

 
if(!$getrow == 0){ 
 
    echo ".....taken"; 
 
} 
 
else{ 
 
    $sql = mysqli_query($link, "insert....."); 
 
    echo "...reserved"; 
 
}

+0

он все еще имеет эту ошибку Предупреждение: mysqli_num_rows() ожидает, что параметр 1 будет mysqli_result, boolean задан в C: \ xampp \ htdocs \ reservation \ formup.php в строке 19 – Joyce

+0

не могли бы вы показать нам полный код, или вы отправите мне почтовый ящик на страницах и экспортировали образец sql, чтобы я мог проверить и проверить, где он поступил не так! [email protected] –

+0

его правильная работа теперь сэр спасибо за помощь :) – Joyce

Смежные вопросы