Я работаю над проектом, который позволяет пользователям назначать бронирование на такси, но значение должно появляться только в том случае, если ожидаемое время ожидается как минимум на 2 часа.Проверка PHP базы данных MySQL DateTime
здесь хранится php/sql.
<?php
$query = "INSERT INTO Taxi(fname, lname, number, unit, snumber, sname, suburb, dsuburb, dt, status) VALUES('{$fname}','{$lname}','{$contact}','{$unit}','{$snumber}','{$sname}','{$suburb}','{$dsuburb}','{$dt}','{$status}')";
if (mysqli_query($conn, $query)) {
$date = date_create($dt);
$dateFormatted = date_format($date, 'g:ia \o\n d/m/y');
echo "Thank you! Your booking reference number is " . mysqli_insert_id($conn) . " you will be picked up in front of your provided address at " . date_format($date, 'g:ia \o\n l jS F Y') . ".";
} else if (!mysqli_query($conn, $query)) {
echo mysqli_error($conn);
}
mysqli_close($conn);
?>
Вот PHP используется для назначения такси, теперь, чтобы показать в таблице он должен показывать только значение в таблице неназначенной, когда время будет 2 часа или более в будущее. Как я могу проводить сравнения времени?
<?php
require_once ("settings.php");
$conn = @mysqli_connect($host, $user, $pswd)
or die('Failed to connect to server');
@mysqli_select_db($conn, $dbnm)
or die('Database not available');
$query = "SELECT id, fname, lname, number, unit, snumber, sname, suburb, dsuburb, dt, status FROM taxi WHERE status = 'unassigned'";
$results = mysqli_query($conn, $query);
echo "<table width='100%' border ='1'>";
echo "<tr><th>Booking Id</th><th>First<br>Name</th><th>Last<br>Name</th><th>Contact</th><th>Unit<br>Number</th><th>Street<br>Number</th><th>Street<br>Name</th><th>Suburb</th><th>Destination<br>Suburb</th><th>Date/Time</th><th>Status</th></tr>";
while($row = mysqli_fetch_assoc($results)) {
echo "<tr>";
echo "<td> {$row['id']}</td>";
echo "<td> {$row['fname']}</td>";
echo "<td> {$row['lname']}</td>";
echo "<td> {$row['number']}</td>";
echo "<td> {$row['unit']}</td>";
echo "<td> {$row['sname']}</td>";
echo "<td> {$row['snumber']}</td>";
echo "<td> {$row['suburb']}</td>";
echo "<td> {$row['dsuburb']}</td>";
echo "<td> {$row['dt']}</td>";
echo "<td> {$row['status']}</td>";
echo "</tr>";
}
$query = "SELECT id, fname, lname, number, unit, snumber, sname, suburb, dsuburb, dt, status FROM taxi WHERE status = 'assigned'";
$results = mysqli_query($conn, $query);
echo "<table width='100%' border ='1'>";
echo "<tr><th>Booking Id</th><th>First<br>Name</th><th>Last<br>Name</th><th>Contact</th><th>Unit<br>Number</th><th>Street<br>Number</th><th>Street<br>Name</th><th>Suburb</th><th>Destination<br>Suburb</th><th>Date/Time</th><th>Status</th></tr>";
while($row = mysqli_fetch_assoc($results)) {
echo "<tr>";
echo "<td> {$row['id']}</td>";
echo "<td> {$row['fname']}</td>";
echo "<td> {$row['lname']}</td>";
echo "<td> {$row['number']}</td>";
echo "<td> {$row['unit']}</td>";
echo "<td> {$row['sname']}</td>";
echo "<td> {$row['snumber']}</td>";
echo "<td> {$row['suburb']}</td>";
echo "<td> {$row['dsuburb']}</td>";
echo "<td> {$row['dt']}</td>";
echo "<td> {$row['status']}</td>";
echo "</tr>";
}
echo "<br>";
mysqli_free_result($results);
mysqli_close($conn);
?>
Я предлагаю, а затем сбрасывать весь код, Вы должны предоставить конкретный фрагмент кода, связанный с этой проблемой. –
Вы можете использовать http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_datediff. Вы открыты для SQL-инъекций с помощью этого кода. Кроме того, использование '@' - это плохая практика, вы должны решить проблему, вызывающую ошибку. Также странно, что вы тестируете 'isset', но затем вставляете вне зависимости от результатов – chris85