PHP If else и немного логики - PullRequest
0 голосов
/ 01 февраля 2019

У меня просто какая-то проблема, если / иначе или какие-то логические вещи здесь, у меня есть полный календарь, который показывает всю дату, которая является резервной, я ограничиваю резерв на 5 за дату, но когда у меня есть 2 или более зарезервированныхна дату и резервирование на другую дату, это дает мне тот же результат, что и 4.

global $db;
$data = array();

$query = "SELECT * FROM reserve_master
          INNER JOIN reserve_details
          on reserve_master.reserve_id = reserve_details.reserve_id
          INNER JOIN reserve_indicator
          on reserve_master.reserve_id = reserve_indicator.reserve_id
          WHERE reserve_indicator.touserid = '$id'
          AND reserve_master.type = 'Repair' ";

$res = mysqli_query($db,$query);
$count = mysqli_num_rows($res);
$count = 5 - $count;//count the available slot
$date_changed = "";
$reserve_id = 0;

foreach ($res as $row) 
{
date_default_timezone_set('Asia/Manila');

    $current_timestamp = strtotime($row["dateend"] . '+1 day');

    $time = date("Y/m/d",$current_timestamp);


    if($row["datestart"] == $date_changed)
    {
      //This is for avoiding repeating graph on fullcalendar
    }
    else
    {
        if(empty($count))
        {
            $count = '0';
        }
        else
        {
            $count;
        }

        $data[] = array(
            'id'    => $row["reserve_id"],
            'title' => $count,
            'start' => $row["datestart"],
            'end' => $time,
            'color' =>getColor($row["status"])
                );
        $date_changed = $row["datestart"];
        $reserve_id = $row["reserve_id"];
    }

}

        echo json_encode($data);

Это изображение ошибки с подписями

База данных

CREATE TABLE `reserve_master` (
`reserve_id` int(11) NOT NULL AUTO_INCREMENT,
`datestart` date NOT NULL,
`dateend` date NOT NULL,
`type` varchar(255) NOT NULL,
PRIMARY KEY (`reserve_id`)
) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=latin

CREATE TABLE `reserve_indicator` (
    `indicator_id` int(11) NOT NULL AUTO_INCREMENT,
    `reserve_id` int(11) NOT NULL,
    `touserid` int(11) NOT NULL,
    `byuserid` int(11) NOT NULL,
    PRIMARY KEY (`indicator_id`),
    KEY `reserve_id` (`reserve_id`) USING BTREE,
    CONSTRAINT `reserve_indicator_ibfk_1` FOREIGN KEY (`reserve_id`) REFERENCES `reserve_master` (`reserve_id`)
) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=latin1


CREATE TABLE `reserve_details` (
 `details_id` int(11) NOT NULL AUTO_INCREMENT,
 `reserve_id` int(11) NOT NULL,
 `title` varchar(255) NOT NULL,
 `description` varchar(255) NOT NULL,
 `status` varchar(255) NOT NULL,
 `location` varchar(255) NOT NULL,
 PRIMARY KEY (`details_id`),
 KEY `reserve_id` (`reserve_id`) USING BTREE,
 CONSTRAINT `reserve_details_ibfk_1` FOREIGN KEY (`reserve_id`) REFERENCES `reserve_master` (`reserve_id`)
) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=latin1

Все, что я пытался сделать, - это получить права на 2 февраля 2018 года, а не на другие.

1 Ответ

0 голосов
/ 02 февраля 2019

Код беспорядок, я очень сожалею;

Проблема уже решена;

Я использую eventLimit в fullcalendar и устанавливаю его в 1

Count = 5не вычитается с помощью num_rows

и немногих из них, установленных в операторе if

Немного ответа Я использовал строки и res, поскольку это легко указать для результатов и строк, и я использовал его так же, как и другие запросы.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...