php - 为什么我的查询结果只输出一行?

标签 php jquery mysql jquery-ui

我正在从我的数据库中禁用 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 变量中的内容。上面的代码反射(reflect)了工作代码。

最佳答案

我不确定你的 while 循环括号应该放在哪里,但你需要将它们向下移动。

像这样:

<?php
    $bookeddates = "SELECT fromdate, todate FROM messages WHERE listing_id = '".$_GET['listingid']."'";
        $resultbookeddates = mysql_query($bookeddates) or die(mysql_error() . "<br>" . $bookeddates);
        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 = array($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;

    }

    $date_list_res = '["' . implode('","', $date_list) . '"]';
?>
<script type="text/javascript">
    var bookedDays = <?php echo $date_list_res; ?>;
</script>

关于php - 为什么我的查询结果只输出一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28863164/

相关文章:

javascript - 如何将一组数组(字符串格式)推送到一个数组?

PHP 内爆数组,前缀和逗号分隔

php - mysql - 一次更新两条记录

php - 连接两个数据库A和B

mysql - 单个查询中的多个删除

MySQL "cant create test file", "Failed to set datadir or directory",无法使用初始密码连接

mysql - 为什么我收到错误代码 : 1292 in a specific range?

php - 使用 apc_cache 和存储到文件之间的区别?

jquery - 如果前一个 div 有类,则在当前 div 上添加 css

javascript - 如果iframe如何降低高度