php mysqli事件按日期获取

php mysqli事件按日期获取,php,mysqli,Php,Mysqli,我已经做了一个代码,在那里我在一个月内得到所有的数字,然后我从我的数据库中添加事件。我需要从数据库中获得$sqldates中的数字,我现在只得到数组,就像我回显$sqldates时一样。现在我的数据库中有4、10、22和26个 这就是我现在得到的看这张照片 这就是我想要看这张照片的结果 如何从数据库中获得如图2所示的结果?请帮助如何从数组中获取数字 <table> <?php //database connent include '

我已经做了一个代码,在那里我在一个月内得到所有的数字,然后我从我的数据库中添加事件。我需要从数据库中获得$sqldates中的数字,我现在只得到数组,就像我回显$sqldates时一样。现在我的数据库中有4、10、22和26个

这就是我现在得到的看这张照片

这就是我想要看这张照片的结果

如何从数据库中获得如图2所示的结果?请帮助如何从数组中获取数字

    <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']行放在哪里?在这个解决方案中,你实际上在一个数组中存储值,在另一个数组中存储颜色(数组的大小必须相同)。使用此选项,您可以在数据库中为每天存储不同的颜色。