在表和周计数的数目附加数据形式的数据库PHP的MySQL显示数据

问题描述 投票:0回答:1

我发现用在PHP循环表显示我的数据的麻烦。

我使用的引导我的前端和PHP MySQL作为我的后端。

我真的试过作为第一个图像显示的数据,但我一遍又一遍地让图像2的结果。

即使我尝试用CSS如图所示,第一图像在这里,在表格的行和列不显示其样式,是图像image1image2 This is what i want the table to look like

but i ama getting this

预期的结果应低于this is the expected outcome是我的代码

<!-- language: lang-html -->
<!DOCTYPE html>
<html lang="en">

<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
</head>

<body>
<?php
  $con = mysqli_connect('localhost','root','','reservations');
  $startingDay = date('Y-m-d', strtotime("first sunday of this month -6 days"));
  $numberOfDays = 35;
  $dates = array();
  $weekCounter = 1;
  $meetingRow  = '';

  for ($i = 0; $i <= $numberOfDays - 1; $i++) {

    $date    = date('m/j/Y', strtotime("$startingDay +$i days"));
    $dates[] = $date;

    if (date('l', strtotime($date)) == "Monday") {

      $meetingRow   .= '<div class="container">';
      $meetingRow   .= '<table class="table" border="1" cellpadding="2" cellspacing="2">';
      $meetingRow   .= '<tbody>';
      $meetingRow   .= '<tr><td colspan="8"></td></tr>';
      $meetingRow   .= '<tr>';
      $meetingRow   .= '<th>Week ' .  $weekCounter++ . '</th>';

    }

    $meetingRow    .= '<th>';
    $meetingRow    .= '<p>' . $date. '</p>';
    $meetingRow    .= '<p>' . date('l', strtotime($date)). '</p>';
    $meetingRow    .= '</th>';

    if (date('l', strtotime($date)) == "Sunday") { 

        $meeting_room_sql = "
    SELECT id
         , meeting_room_name 
      FROM meeting_room
    ";
        $meeting_room_result = mysqli_query($con, $meeting_room_sql);
        // you are to use $meeting_room_result not $meeting_room_sql error occurs in fetching from meeting_room
        while ($meeting_room_row = mysqli_fetch_assoc($meeting_room_result)) {

            $meeting_room_id    = $meeting_room_row['id'];
            $meeting_room_name  = $meeting_room_row['meeting_room_name'];

            $meetingRow   .= '<tr>';
            $meetingRow   .= '<td>';
            $meetingRow   .= '<div>' . htmlentities($meeting_room_name, ENT_QUOTES, "UTF-8") . '</div>';
            $meetingRow   .= '<button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#meetingModal">Reserve</button>';
            $meetingRow   .= '</td>';

            $reserved_sql = "SELECT meeting_room_id, reserved_date FROM meeting";
            $reserved_result = mysqli_query($con, $reserved_sql);
            while ($reserved_row = mysqli_fetch_assoc($reserved_result)) {

                $reserved_room_id = $reserved_row['meeting_room_id'];
                $reserved_date    = $reserved_row['reserved_date'];

                if ($reserved_room_id == $meeting_room_id) {
                    $meetingRow   .= '<td>' . htmlentities('Meeting Reserved ' . date('m/j/Y', strtotime($reserved_date)), ENT_QUOTES, "UTF-8"). '</td>';
                } else {
                    $meetingRow   .= '<td><br /></td>'; 
                }

            }
        }

        $meetingRow   .= '<td><br /></td>'; 
        $meetingRow   .= '<td><br /></td>';             
        $meetingRow   .= '<td><br /></td>'; 
        $meetingRow   .= '<td><br /></td>'; 
        $meetingRow   .= '<td><br /></td>'; 
        $meetingRow   .= '</tr>';
    }

    $meetingRow   .= '</tbody></tr>';
    $meetingRow   .= '</table>';
    $meetingRow   .= '</div>';
  }
  echo $meetingRow;
?>
<script>
    $(function() {
      $("#meeting_date").datepicker();
    });
  </script>
</body>

</html>
{
"meeting_room": {
    "Room 1": {
        "id":1,
        "meeting_room_name":"meeting room 1"
    },
    "Room 2": {
        "id":2,
        "meeting_room_name":"meeting room 2"
    },
    "Room 3": {
        "id":3,
        "meeting_room_name":"meeting room 3"
    },
},
"meeting": {
    "1": {
        "id":1,
        "meeting_room_id":"2",
        "reserved_date":"02/02/2019"
    },
    "2": {
        "id":2,
        "meeting_room_id":"02/03/2019",
    },
    "3": {
        "id":3,
        "meeting_room_id":"01/31/2019",
    }
}
}
php html mysql twitter-bootstrap for-loop
1个回答
1
投票

试试下面,有许多问题与你的逻辑在这里,首先你要创建新表中时其Monday这样的第一件事是将起点和表的结束标记圈外。

现在,我没有数据库,但我希望这将解决这个问题。

<!-- language: lang-php -->
<!DOCTYPE html>
<html lang="en">

<head>
    <title>Bootstrap Example</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
</head>

<body>
<?php
$con = mysqli_connect('localhost','root','','test');
$startingDay = date('Y-m-d', strtotime("first sunday of this month -6 days"));
$numberOfDays = 35;
$dates = array();
$weekCounter = 1;
$meetingRow  = '';
$meetingRow   .= '<div class="container">';
$meetingRow   .= '<table class="table" border="1" cellpadding="2" cellspacing="2">';
$meetingRow   .= '<tbody>';




for ($i = 0; $i <= $numberOfDays - 1; $i++) {

    $date    = date('m/j/Y', strtotime("$startingDay +$i days"));
    $dates[] = $date;

    if (date('l', strtotime($date)) == "Monday") {

        $meetingRow   .= '<tr><td colspan="8"></td></tr>';
        $meetingRow   .= '<tr>';
        $meetingRow   .= '<th>Week ' .  $weekCounter++ . '</th>';
    }

    $meetingRow    .= '<th>';
    $meetingRow    .= '<p>' . $date. '</p>';
    $meetingRow    .= '<p>' . date('l', strtotime($date)). '</p>';
    $meetingRow    .= '</th>';

    if (date('l', strtotime($date)) == "Sunday") {

        $meeting_room_sql = "SELECT id , meeting_room_name  FROM meeting_room";
        $meeting_room_result = mysqli_query($con, $meeting_room_sql);
        // you are to use $meeting_room_result not $meeting_room_sql error occurs in fetching from meeting_room
        while ($meeting_room_row = mysqli_fetch_assoc($meeting_room_result)) {

            $meeting_room_id    = $meeting_room_row['id'];
            $meeting_room_name  = $meeting_room_row['meeting_room_name'];

            $meetingRow   .= '<tr> 
                                 <td> 
                                    <div>' . htmlentities($meeting_room_name, ENT_QUOTES, "UTF-8") . '</div>
                                    <button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#meetingModal">Reserve</button>
                                 </td>';

            $reserved_sql = "SELECT meeting_room_id, reserved_date FROM meeting WHERE meeting_room_id = {$meeting_room_row["id"]}";
            $reserved_result = mysqli_query($con, $reserved_sql);
            $total_number_of_rows = 7;//As we have 7 days in a week so we have 7 days column

            $RowCounter = 0;
            while ($reserved_row = mysqli_fetch_assoc($reserved_result)) {
                $RowCounter++;
                $reserved_room_id = $reserved_row['meeting_room_id'];
                $reserved_date    = $reserved_row['reserved_date'];

                if ($reserved_room_id == $meeting_room_id) {
                    $meetingRow   .= '<td>' . htmlentities('Meeting Reserved ' . date('m/j/Y', strtotime($reserved_date)), ENT_QUOTES, "UTF-8"). '</td>';
                } else {
                    $meetingRow   .= '<td><br /></td>';
                }
            }
            while ($RowCounter < $total_number_of_rows){
                    $meetingRow   .= '<td><br /></td>';
                    $RowCounter++;
            }

            $meetingRow   .= '<tr>';

        }
        $meetingRow   .= '</tr>';
    }



}
$meetingRow   .= '</tbody>';
$meetingRow   .= '</table>';
$meetingRow   .= '</div>';
echo $meetingRow;
?>
<script>
    $(function() {
        $("#meeting_date").datepicker();
    });
</script>
</body>

</html>

立即更新上面的代码工作正常,但为获得会议的逻辑是不正确的,你应该得到由特定日期会议。如果让同一天有两次会议相比,你需要在同一列中添加数据的说。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.