Как обновить статус в базе данных, если статус пустой, без отправки формы в php? - PullRequest
0 голосов
/ 18 марта 2019

Как обновить статус из базы данных, если статус пустой при использовании php?У меня есть это условие в php.У меня есть это, если условие, которое решает, если $getstatus пусто, оно будет обновляться из базы данных до Avail.Я попытался обновить страницу после запроса к базе данных.Но он не будет обновляться в базе данных.Есть ли возможность обновить это без использования формы отправки в php?

<?php
session_start();
include "includes/connection.php";

// Display all parking slots
$sql = $connection->prepare('SELECT * FROM parkingslot where parkingslotid = 1');
$sql->execute(); // execute query
$result = $sql->get_result(); // fetch result

if ($result->num_rows > 0) {
  while($row = $result->fetch_assoc()) {
    $getstatus = $row["status"];
    echo $getstatus;
  }
}

if (empty($getstatus)) {
  $sql = $connection->prepare("UPDATE parkingslot SET status = 'Avail' where parkingslotid = 1 ");
}

?>

Коды в соединении для подключения к базе данных

connection.php

<?php
$server = "localhost";
$username = "root";
$password = "";

// create connection
$connection = mysqli_connect($server,$username,$password);

// check connection
if(!$connection)
{
  die("No connection found." . mysqli_connect_error());
}
else {
  // select a database
  $select_db = mysqli_select_db($connection,'smartparkingsystem');

  if(!$select_db)
  {
    $sql = 'CREATE DATABASE sample';

    // create database if no db found
    if(mysqli_query($connection,$sql)) {
      echo "Database Created";
    }
    else {
      echo "Database not found" . mysqli_connect_error() . '\n';
    }
  }
  else {
      // Database already existed
      // do nothing...
  }
}

?>

Ответы [ 3 ]

0 голосов
/ 18 марта 2019

Отредактировано:

@ lumonald дал право ответить в комментарии.Вы не выполняете свой второй оператор SQL.

0 голосов
/ 18 марта 2019

Если я понимаю вашу цель: Для строк, где parkingslotid = 1 - Обновите status до 'В наличии', но только если status в настоящее время не установлено, это может помочь:

<?php

session_start();
include "includes/connection.php";

$connection->prepare("UPDATE `parkingslot` SET `status`=? WHERE `parkingslotid`=? AND (`status` IS NULL OR `status`=?)");

$connection->bind_param("sis", $status, $parkingslotid, $empty_str);

$status = 'Avail';
$parkingslotid = 1;
$empty_str = '';

$connection->execute(); 

echo $connection->affected_rows.' rows affected';

$connection->close();

?>

Это экономит часть обработки, не проверяя сначала PHP.

0 голосов
/ 18 марта 2019

Вы можете использовать этот запрос:

"UPDATE parkingslot SET status = 'Avail' where status IS NULL OR status = '' "
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...