php mysqli事件按日期获取

时间:2018-08-26 12:28:43

标签: php mysqli

我编写了一个代码,每个月获取所有数字,然后从数据库中添加事件。我需要数字来自$ sqldates中的数据库,而现在我只得到数组,就像我回显$ sqldates时一样。我的数据库中现在有4、10、22和26。

这就是我现在看到的图片 enter image description here

这是我要看这张照片的结果。

enter image description here

如何从数据库中获取结果,如图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> 

2 个答案:

答案 0 :(得分:0)

您正在尝试回显数组。相反,您应该使用指定的索引从该数组中回显一个值。如果我没看错,这应该可以工作:

//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>";
      }

答案 1 :(得分:0)

对于您的更新问题,这应该是很好的指南:

<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> 

请注意,您需要每天定义颜色,否则将收到“未定义的偏移量”通知。