php mysqli событие получить по дате - PullRequest
0 голосов
/ 26 августа 2018

Я создал код, в котором я получаю все числа в месяц, а затем добавляю события из своей базы данных.Мне нужно, чтобы числа поступали из базы данных в $ 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> 

Ответы [ 2 ]

0 голосов
/ 26 августа 2018

Для вашего обновленного вопроса это должно быть хорошим ориентиром:

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

Обратите внимание, что вам нужно иметь определенный цвет для каждого дня, в противном случае вы получите уведомление "Неопределенное смещение".

0 голосов
/ 26 августа 2018

Вы пытаетесь отобразить массив. Вместо этого вы должны отобразить значение из этого массива с указанным индексом. Если я не ошибаюсь, это должно работать:

//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>";
      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...