php mysqli事件按日期获取
我已经做了一个代码,在那里我在一个月内得到所有的数字,然后我从我的数据库中添加事件。我需要从数据库中获得$sqldates中的数字,我现在只得到数组,就像我回显$sqldates时一样。现在我的数据库中有4、10、22和26个 这就是我现在得到的看这张照片 这就是我想要看这张照片的结果 如何从数据库中获得如图2所示的结果?请帮助如何从数组中获取数字php mysqli事件按日期获取,php,mysqli,Php,Mysqli,我已经做了一个代码,在那里我在一个月内得到所有的数字,然后我从我的数据库中添加事件。我需要从数据库中获得$sqldates中的数字,我现在只得到数组,就像我回显$sqldates时一样。现在我的数据库中有4、10、22和26个 这就是我现在得到的看这张照片 这就是我想要看这张照片的结果 如何从数据库中获得如图2所示的结果?请帮助如何从数组中获取数字 <table> <?php //database connent include '
<table>
<?php
//database connent
include 'con.php';
//get day from event
$sql = "SELECT day, color FROM events";
$result = mysqli_query($con, $sql);
$sqldates = array(array('day', 'color_value'), array('date_value', 'color_value'), array('date_value', color_value));
while($row=mysqli_fetch_array($result)){
array_push($sqldates, $row['day'], $row['color'] );
echo $row['day'];
}
$counter = 0;
//first day
$firstday = '1';
$two = cal_days_in_month(CAL_GREGORIAN, 8, 2018); // 31
//for loop get all day in month
for ($number = $firstday; $number <= $two; $number++)
if (in_array($number , $sqldates)) {
echo "<td width=50 bgcolor='#{$sqldates[$counter][1]}'>$sqldates[$counter][0]</td>";
$counter++;
} else {
echo"<td width=50 bgcolor='#1e8e8e'>$number</td>";
}
?>
</table>
您正在尝试回显阵列。相反,您应该使用指定的索引从该数组回显一个值。如果我没有错,这应该是可行的:
//first day
$firstday = '1';
$two = cal_days_in_month(CAL_GREGORIAN, 8, 2018); // 31
//for loop get all day in month
$counter = 0;
for ($number = $firstday; $number <= $two; $number++)
if (in_array($number , $sqldates)) {
echo"<td width=50 bgcolor='#f44242'>$sqldates[$counter]</td>";
$counter++;
} else {
echo"<td width=50 bgcolor='#1e8e8e'>$number</td>";
}
//第一天
$firstday='1';
$two=每月的cal_天数(cal_GREGORIAN,2018年8月);//31
//为循环得到一个月的全天
$counter=0;
对于($number=$firstday;$number对于您更新的问题,这应该是一个很好的指南:
<table>
<?php
//database connect
include 'con.php';
//get day from event
$sql = "SELECT day, color FROM events";
$result = mysqli_query($con, $sql);
$sqldates = array();
$colors = array();
while($row=mysqli_fetch_array($result)){
array_push($sqldates, $row['day']);
array_push($colors, $row['color']);
}
//first day
$firstday = '1';
$two = cal_days_in_month(CAL_GREGORIAN, 8, 2018); // 31
//for loop get all day in month
$counter = 0;
for ($number = $firstday; $number <= $two; $number++)
if (in_array($number , $sqldates)) {
echo "<td width=50 bgcolor='$colors[$counter]'>$sqldates[$counter]</td>";
$counter++;
} else {
echo"<td width=50 bgcolor='#1e8e8e'>$number</td>";
}
?>
</table>
只需回显$number
而不是$sqldates
…?不,$number会给我php的结果。我需要从数据库中获取数字。$sqldates变量是正确的,但是$sqldates
是您想要的红色数字数组,$number
是数字本身。。当我添加代码时,它在for循环中,我只使用get一个绿色单元格中有32个。认为循环会影响你的答案。当我回显“$sqldates[0]”时,它几乎可以工作,但仍然是错误的,然后我在每个红色单元格中得到4个。只需在for循环之前输入$counter=0,它就会工作:)好,工作正常。如果我想在数组中添加第二行以从数据库中获取颜色,这是一个很大的变化吗?添加行$row['color']),这取决于您的方法。。。可以使用多维数组。所以你会得到这样的结果:$sqldates=array(array('date\u value','color\u value')、array('date\u value','color\u value')、array('date\u value',color\u value));当您从这个数组读取时:echo“$sqldates[$counter][0]”;但第一个版本更清晰,更容易理解。我希望这是有帮助的:)我更新了我的代码没有得到我把$row['color']行放在哪里?在这个解决方案中,你实际上在一个数组中存储值,在另一个数组中存储颜色(数组的大小必须相同)。使用此选项,您可以在数据库中为每天存储不同的颜色。