【发布时间】:2015-05-05 22:55:44
【问题描述】:
我正在从我的数据库中禁用 jQuery UI 日期选择器中的日期,而我的代码几乎可以正常工作,唯一的问题是它只从数据库中读取一行。目前我在数据库中有两个预订,因此日期选择器中应该有两个单独的预订,其中日期被禁用但只有一个。有人能看出我哪里出错了吗?
<?php
$bookeddates = "SELECT fromdate, todate FROM messages WHERE listing_id = '".$_GET['listingid']."'";
$resultbookeddates = mysql_query($bookeddates) or die(mysql_error() . "<br>" . $bookeddates);
$date_list = array();
while ($rowbookeddates = mysql_fetch_assoc($resultbookeddates)) {
$from = date('Y-n-j', strtotime($rowbookeddates['fromdate']));
$to = date('Y-n-j', strtotime($rowbookeddates['todate']));
$start_time = strtotime($from);
$end_time = strtotime($to);
$date_list[] = $from;
$current_time = $start_time;
while($current_time < $end_time) {
//Add one day
$current_time += 86400;
$date_list[] = date('Y-n-j',$current_time);
}
$date_list[] = $to;
} ?>
<script type="text/javascript">
var bookedDays = <?php echo json_encode($date_list); ?>;
</script>
已解决,问题实际上是存储在 JavaScript 变量中的内容。上面的代码反映了工作代码。
【问题讨论】:
-
你怎么知道只提取了一行?您一一获取所有行,并不断覆盖 $from 和 $to。获取所有行后,您只需在其余代码中使用最后的 $from 和 $to。
-
您是否能够验证仅运行 SQL 查询会返回两行?你可以试试吗?或者尝试在您的 while 循环中输出每个
$rowbookeddates。mysql_fetch_assoc也已被弃用。你运行的是什么版本的 PHP? -
@kainaw - 我可以告诉我在数据库中我有两行具有不同的日期,并且只有一行日期被禁用。如何在其余代码中仅使用最后一个 $from 和 $to 来解决?
-
您正在使用这个
listing_id = '".$_GET['listingid']."'"等待多少条记录? -
在你的帖子中更新你的代码,并显示你到目前为止的结果
标签: php jquery mysql jquery-ui