Удалить радио кнопки, где бронирование уже существует

0

Я пытаюсь сделать свой дневник бронирования с помощью php, sql и html.

Я хотел бы иметь возможность предотвратить обнаружение бронирования в моей форме бронирования, проверив мою базу данных, чтобы увидеть, существует ли запись, прежде чем разрешить выполнение инструкции insert.

В идеале я хотел бы иметь возможность сделать заявку на выбор, чтобы проверить, существует ли уже бронирование. ЕСЛИ ВРЕМЯ И ДАТА НЕ СУЩЕСТВУЮТ Я бы хотел, чтобы RADIO BUTTON PRESENT ELSE ЕСЛИ ВРЕМЯ И ДАТА Я бы хотел, чтобы радиокнопка NOT PRESENT.

Я думал долго и упорно, но не может придумать способ, чтобы сделать это.

Могу ли я получить некоторые предложения о том, как я могу преодолеть свою проблему?

благодаря

Моя таблица SQL выглядит следующим образом: ТАБЛИЦЫ (bDate Date, bTime Time, bName CHAR (30), bNumber CHAR (30), bReg CHAR (30), bMakeModel CHAR (30))

Это то, что у меня есть до сих пор, но я не могу думать, как это сделать, я думаю, что, возможно, я ошибаюсь, и, возможно, более подходящий цикл будет лучше:

<?php 
$result = mysqli_query($con,"SELECT * FROM Bookings WHERE bDate = '$_POST[bDate]' ORDER      
BY bTime;");
while($row = mysqli_fetch_array($result)){
if $_POST["bDate"] = $row['bDate'] AND $_POST["bTime"] = !$row['bTime']{
<input type="radio" name="bTime" value="08:00:00"> 8:00

}
?>
  <input type="radio" name="bTime" value="08:00:00"> 8:00
  <input type="radio" name="bTime" value="09:00:00"> 9:00
  <input type="radio" name="bTime" value="10:00:00"> 10:00
  <input type="radio" name="bTime" value="11:00:00"> 11:00<br>
  <input type="radio" name="bTime" value="13:00:00"> 13:00
  <input type="radio" name="bTime" value="14:00:00"> 14:00
  <input type="radio" name="bTime" value="15:00:00"> 15:00
  <input type="radio" name="bTime" value="16:00:00"> 16:00<br>
  • 0
    кажется, что вы на правильном пути. в чем именно проблема?: Как выглядит схема вашей базы данных?
  • 0
    Можете ли вы показать нам, что вы пробовали до сих пор ... любой код ??
Теги:

2 ответа

1

Кажется, никто не ответил на ваш вопрос. Вот немного стартового кода для вас. Не забудьте заменить на сервер базы данных, пользователя, пароль и базу данных для подключения к mysql:

<?php
$mysqli = new mysqli("host", "user", "password", "database");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
    <title>sans titre</title>
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />
    <meta name="generator" content="Geany 1.23.1" />
</head>

<body>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
        <p>Date : <input type="text" id="bDate" name="bDate" value="" /></p>
        <p>Time : <input type="text" id="bTime" name="bTime" value="" /></p>
        <input type="submit" value="Send" />
    </form>
    <hr />
    <?php
    /* Check if form is submitted */
    if (isset($_POST["bDate"])) {
        // Need a bDate format = 'YYYY-MM-DD'
        if (!preg_match("/^\d{4}\-[0-1][0-9]\-[0-3][0-9]$/", $_POST["bDate"])) {
            printf("dDate pattern error for SQL. Waiting YYYY-MM-DD");
            exit();
        }

        /* Execute query */
        $query = "SELECT 'bDate' , 'bTime' , 'bName' , 'bNumber' , 'bReg' , 'bMakeModel' FROM 'Bookings' WHERE 'bDate' = '". $_POST["bDate"] . "' ORDER BY 2";
        $result = $mysqli->query($query);

        /* Parsing result set */
        while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
            printf ("%s (%s)<br />", $row["bDate"], $row["bTime"]);

            if ($_POST["bDate"] ==  $row["bDate"] && $_POST["bTime"] != $row["bTime"]) {
                printf ("<input type=\"radio\" id=\"bTime\" value=\"%s\" /> %s<br />", $row["bTime"], $row["bTime"]);
            }

        }

        /* free result set */
        $result->free();
    }

    /* close connection */
    $mysqli->close();
    ?>
</body>

</html>

У вас есть проверка на соединение mysql, переменная POST dDate. Также используйте бесплатный набор результатов, который больше не нужен. Надеюсь, это поможет вам.

1

Пока вы не разместите какой-либо код для лучшей помощи, структуру базы данных и, в конечном счете, пример одной или двух строк. Вот шаги.

Для проверки части (формы): Если вы не отправили свою форму, используйте AJAX для проверки в своей базе данных. Если вы отправили форму, просто выполните запрос в своей базе данных.

Для части SQL: простой счетчик может выполнить трюк (return 0, если строки не найдены и n, если n строк найдено), но получение идентификатора лучше (NULL, если строки не найдены). Если вам нужна помощь по запросу, опишите структуру таблицы и поля, которые вы проверяете.

Для последней части (показывается или нет метка: на PHP просто нужно протестировать возврат SQL и выполнить тест условия на значение count (> 0 или нет) или ID (NOT NULL, если найденная строка, иначе NULL). Вы можете добавить переключатель (или нет) в зависимости от результата теста

Совет. Использование идентификатора лучше, потому что вы можете добавить его в скрытый тег INPUT, если вы нашли строку. Если позже вы решите его обновить, это будет возможно с этим идентификатором.

Изменить (с вашим кодом сейчас): в вашем PHP-коде у вас много ошибок: → ваше условие не окружено круглыми скобками → Логические операторы в инструкции PHP не похожи на SQL: AND (SQL) = && (PHP) → Внутри вашего if, входной тег не находится в эхо. входной тег HTML не PHP

Советы: - Вы уверены, что у вас есть хорошая связь ($con) ressource с базой данных? - В строке sql нет необходимости добавлять финальную полуточку ";" - Всегда о SQL, используя псевдоним звезды в запросе, выполняется медленнее, чем перечисление каждого поля. Если однажды вам нужно получить огромный набор результатов, это будет оптимизация

Ещё вопросы

Сообщество Overcoder
Наверх
Меню