получить несколько результатов из MySQL в одном массиве

Проблема, с которой я сталкиваюсь, заключается в том, что я хочу получить результаты, полученные из mysql, в один массив:
{ «Дата»: «2014-09-28», «2014-09-29», «2014-09-30»}
несмотря на этот результат
{ «дата»: «2014-09-28»} { «финики»: «2014-09-29»} { «финики»: «2014-09-30»}
что он будет использовать, чтобы отключить эти даты на моем DatePicker на другой странице
это мой исходный код

    <?php
@session_start;
include '../includes/db_login.php';
$flat_id= $_GET['flat_id'];

$result = mysql_query("SELECT startDate,endDate FROM reservation WHERE flat_id='$flat_id'");
$i=0;
while($row = mysql_fetch_array($result))
{$s_dte=$row['startDate'];
$s_dte2=strtotime($s_dte);
$s=date("Y-m-d",$s_dte2);
$e_dte=$row['endDate'];
$diff = abs(strtotime($e_dte) - strtotime("-1 day",strtotime($s)));$yrs   = floor($diff / (365*60*60*24));
$mnth  = floor(($diff - $yrs * 365*60*60*24) / (30*60*60*24));
$days    = floor(($diff - $yrs * 365*60*60*24 - $mnth*30*60*60*24)/ (60*60*24));
$t=1;while($t <= $days){

//echo $s."\n";
$confirmedSends = array ( "dates" => $s);
$date = strtotime("+1 day", strtotime($s));
$s=date("Y-m-d", $date);
$t++;
$jsonConfirmedSends =  json_encode($confirmedSends);
echo $jsonConfirmedSends;
}

}

?>

Я получил требуемый вывод сейчас, но я все еще не могу отключить даты в jquery, это мой исходный код, который я использовал для jquery

jQuery(document).ready(function () {

$("#datepick").datepicker({
defaultDate: "d",
dateFormat: 'yy-mm-dd',
changeMonth: true,
numberOfMonths: 1,
beforeShowDay: checkAvailabilityStart,
onClose: function (selectedDate) {
$("#datepick2").datepicker("option", "minDate", selectedDate);
}
});var dates = [];
var flat_id = $("#flat_id").val();$.getJSON("ajax.php?flat_id=" + flat_id, function (data) {
$.each(data, function(index, value) {
dates.push(value.data); // i don't know what's (value.data) refer to !
});
});function checkAvailabilityStart(mydate) {
var $return = true;
var $returnclass = "available";
$checkdate = $.datepicker.formatDate('yy-mm-dd', mydate);
for (var i = 0; i < dates.length; i++)
{
if (dates[i] == $checkdate)

{
$return = false;
$returnclass = "unavailable";
}
}
return [$return, $returnclass];
}});</script>

0

Решение

Немного короче

$dates = array('dates' =>array());
while ($row = mysqli_fetch_assoc($result)) {
$date = strtotime($row['startDate']);
$enddate = strtotime($row['endDate']);
while ($date <= $enddate) {
$dates['dates'][] = date('Y-m-d', $date);
$date += 86400;
}

}
echo json_encode($dates);
0

Другие решения

Многомерный массив — это то, что вам нужно. Проверьте изменения в коде —

    <?php
@session_start;
include '../includes/db_login.php';
$flat_id= $_GET['flat_id'];

$result = mysql_query("SELECT startDate,endDate FROM reservation WHERE flat_id='$flat_id'");
$i=0;
$final = array();
while($row = mysql_fetch_array($result))
{$s_dte=$row['startDate'];
$s_dte2=strtotime($s_dte);
$s=date("Y-m-d",$s_dte2);
$e_dte=$row['endDate'];
$diff = abs(strtotime($e_dte) - strtotime("-1 day",strtotime($s)));$yrs   = floor($diff / (365*60*60*24));
$mnth  = floor(($diff - $yrs * 365*60*60*24) / (30*60*60*24));
$days    = floor(($diff - $yrs * 365*60*60*24 - $mnth*30*60*60*24)/ (60*60*24));
$t=1;while($t <= $days){

//echo $s."\n";
$confirmedSends = array ( "dates" => $s);
$date = strtotime("+1 day", strtotime($s));
$s=date("Y-m-d", $date);
$t++;
$final[] = $confirmedSends;
//$jsonConfirmedSends =  json_encode($confirmedSends);
//echo $jsonConfirmedSends;
}
}
echo json_encode($final);
?>
0

instead of below code,

while($t <= $days){

//echo $s."\n";
$confirmedSends = array ( "dates" => $s);
$date = strtotime("+1 day", strtotime($s));
$s=date("Y-m-d", $date);
$t++;
$jsonConfirmedSends =  json_encode($confirmedSends);
echo $jsonConfirmedSends;
}

Try below code :

while($t <= $days){

//echo $s."\n";
$confirmedSends["dates"][] = $s;
$date = strtotime("+1 day", strtotime($s));
$s=date("Y-m-d", $date);
$t++;
}

$jsonConfirmedSends =  json_encode($confirmedSends);
echo $jsonConfirmedSends;
0
По вопросам рекламы [email protected]