Извлекать и выводить данные из второй таблицы на основе значения в первой таблице - PullRequest
0 голосов
/ 27 октября 2018

Я пытаюсь создать таблицу / диаграмму с информацией о клиентах.

Я устанавливаю значение status_id "статус рабочего задания" для клиента, когда он / она проверяет свой компьютер у нас в качестве числового значения.

https://i.imgur.com/lNSBsMR.png

В другой таблице я храню статусы с помощью status_id и status_text типа текущих статусов. Поэтому я могу добавить больше статусов в зависимости от типа работы.

https://i.imgur.com/KkLNPDG.png?1

Первоначально я использовал такие переключатели регистра, как этот, и номер регистра соответствовал бы значению внутри строки.

$sql    = "SELECT * FROM workorder";
$result = $conn->query($sql);
   while($row = mysqli_fetch_array($result))  {

//case switch
 $repair_status_color = "";
        $repair_status_text = "";
        switch ($row["status_id"]) {
            case 0:
                $color = "red";
                $repair_status_text = "Open";    
                break;
            case 1:
                $color = "blue";
                $repair_status_text = "Waiting";
                break;
            case 2:
                $color = "blue";
                $repair_status_text = "Waiting Parts";
                break;
        }

        echo "<td>" . $repair_status_text . "</td>";

}

Я пытаюсь получить значение из таблицы workorder, сравнить его с таблицей status, а затем повторить текст из status_text из таблицы Status , используемый для status_id из таблицы workorder

Я пробовал этот код

 $sql = "SELECT * FROM workorder INNER JOIN status ON workorder.status_id = status.status_id";
echo $row["status_text"]

Но я не уверен, что делаю это правильно. Кто-нибудь заметил, что я делаю не так?

1 Ответ

0 голосов
/ 27 октября 2018

У вас нет столбца с именем status_text, поэтому $row['status_text'] будет не установлен (согласно вашему скриншоту). Если у вас есть, вы должны выбрать его. Вы можете использовать это для доступа к нему:

SELECT w.*, s.status_name AS 'status_text'
FROM workorder w
INNER JOIN status s
ON w.status_id = s.status_id

Или, если у вас есть столбец status_text, вы можете сделать это:

SELECT w.*, s.status_text
FROM workorder w
INNER JOIN status s
ON w.status_id = s.status_id

Теперь вы можете получить к нему доступ так:

while($row = mysqli_fetch_array($result))  {
    echo $row['status_text'];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...