Как заполнить пустой массив в цикле с помощью PHP - PullRequest
0 голосов
/ 30 октября 2019

Я хочу иметь две таблицы в mysql «taxiInfo» и «booking», теперь я просто хочу показать / получить статус каждого такси (независимо от того, «забронировано» каждое такси или «доступно»),

Вот мой стол "taxiInfo"

id          userId          TotalTaxi           
1           2               3   
2           4               2

Вот мой стол "booking"

id      userId          taxiId          serviceDate
1       2               1               2019-10-30  

Теперь первым делом я получаю "TotalTaxi" из mysql и проверяю, заказано ли такси илине используя цикл, вот мой код

$this->db->select('*');
        $this->db->from('taxiInfo');
        $this->db->where('userId', $_POST['userId']);
        $query = $this->db->get();
        if ( $query->num_rows() > 0 )
            {
                $rows = $query->row_array();
                 $totaltaxi=$rows['TotalTaxi'];
                $team=array();
                for($i=1;$i<=$totaltaxi;$i++)
                {
                    $date = date('Y-m-d');
                    $this->db->select('b.*');
                    $this->db->from('booking b');
                    $this->db->where('userId', $_POST['userId']);
                    $this->db->where('taxiId', $i);
                    $this->db->where('serviceDate', $date);
                    $querys = $this->db->get();
                    $res = $querys->result_array();
                    echo "<pre>";print_R($res);
                }

Теперь я получаю следующий результат, теперь, если такси "доступно", тогда я получаю пустой массив, я хочу получить результат для обоих условий (независимо от того, является ли таксизабронировано не доступно)

Array
(
    [0] => Array
        (
            [userId] => 2
            [taxiId] => 1
        )
)
Array
(
)
Array
(
)
Array
(
)

Сейчас у меня есть четыре значения в массиве (1 забронировано такси и 3 доступны). Но как я могу объединить все значения в одном массиве? Я хочу вывод, как следующий массив / формат

Array
(
    [0] => Array
        (
            [userId] => 2
            [taxinumber] => 1
            [status] => booked
        )
)
Array
(
    [1] => Array
        (
            [userId] => 2
            [taxinumber] => 2
            [status] => aviliable
        )
)
...

1 Ответ

0 голосов
/ 30 октября 2019

Извините, я должен ответить на основании вашей информации. Поскольку я думаю, что ваша БД странная (или, может быть, это потому, что мои маленькие знания). Непонятно много информации, например:

  • Как это возможно TotalTaxi 3 означает, что это taxi_id 1 или 2 или 3.
  • Что такое taxinumber? Информации об этом нет.
$userId = $_POST['userId'];
$this->db->select('*');
$this->db->from('taxiInfo');
$this->db->where('userId', $userId);
$query = $this->db->get();

if ($query->num_rows() > 0) {
    $rows = $query->row_array();
    $totaltaxi = $rows['TotalTaxi'];
    $date = date('Y-m-d');
    $taxiStatuses = [];

    for ($i=1; $i <= $totaltaxi; $i++) {
        $this->db->select('b.*');
        $this->db->from('booking b');
        $this->db->where('userId', $userId);
        $this->db->where('taxiId', $i);
        $this->db->where('serviceDate', $date);
        $query = $this->db->get();

        $taxiStatuses[] = [
            'user_id' => $userId,
            'taxi_id' => $i,
            'status' => $query->num_rows() > 0 ? 'booked' : 'available',
        ];
    }

    var_dump($taxiStatuses);die();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...