我正在尝试从我的数据库中为一个酒店项目获得多个预订
当我尝试从数据库中获取预订时,我只收到一份预订,它应该显示/选择多个预订。
这是我的PHP代码:
(formulier.php)
<?php
$dt1 = $_POST['date1'];
$dt2 = $_POST['date2'];
$query = "SELECT * FROM dt_tb WHERE dt BETWEEN '$dt1' AND '$dt2'";
$result = mysqli_query($connect,$query);
if (mysqli_num_rows($result)) {
while($row = $result->fetch_assoc()) { include_once 'source.php';
}
echo "<br>formulier.php";
echo "<br>check-in: $dt1 <br>check-out: $dt2";
}
else {
die;
}
?>
这是我的其他php代码:(source.php)
<?php
$dt1 = $_POST['date1'];
$dt2 = $_POST['date2'];
$query = "SELECT * FROM dt_tb WHERE dt BETWEEN '$dt1' AND '$dt2'";
$result = mysqli_query($connect,$query);
if (mysqli_num_rows($result)) {
while($row = $result->fetch_assoc()) {
}
echo "source.php";
echo "<br>check-in: $dt1 <br>check-out: $dt2";
}
else {
die;
}
?>
这是我的数据库:(dt_tb)
https://gyazo.com/966efdf144a8cd1a74fa04a8127cd8f4
这是我收到的:(网站)
https://gyazo.com/1384bdafb5055f5777a40e88baccdbdd
我知道我的代码被严重搞砸了,并尝试解决了一段时间。
最佳答案
我不知道为什么你需要两个文件。您可以将它们加入单循环。
<?php
$dt1 = !empty($_POST['date1']) ? $_POST['date1'] : null;
$dt2 = !empty($_POST['date2']) ? $_POST['date2'] : null;
if (!$dt1 || !$dt2) {
throw new Exception("No dates passed!");
}
$query = "SELECT * FROM dt_tb WHERE dt BETWEEN '$dt1' AND '$dt2'";
$result = mysqli_query($connect, $query);
if (mysqli_num_rows($result)) {
while($row = $result->fetch_assoc()) {
echo "check-in: {$row['dt']}<br/>";
echo "check-out: {$row['dt2']}<br/>";
echo "<br/>";
}
} else {
echo "No bookings found between {$dt1} and {$dt2}";
die();
}
?>
哪里错了:
require_once
仅在第一次迭代时被调用,没有进一步的调用。它主要在包含类或某些配置时使用,在整个逻辑中必须仅包含一次。您尝试在
source.php
中的循环外回显数据您将传递的参数回显到服务器,但不回显实际的数据库记录条目。将
$dt1
更改为$row['dt']
,将$dt2
更改为$row['dt2']
关于php - 从数据库中获取多个数据(等等),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50983858/