@myrade

Как правильно составить запрос mysql php чтоб получать нужные данные?

При выполнении кода данного ниже получаю:
{"device":[{"marka":"6","sn":"qw1454","kab":"16","invn":"7551","type":"2","fio":"2"}],"success":1}
К примеру есть таблица types со столбцами idtype и name. Нужно вывести в поле type в результате вместо "2" то что находится в types.name под idtype=2, итп.
Как составить правильно запрос или изменить что-то в коде, чтобы в итоге получать:
{"device":[{"marka":"Samsung","sn":"qw1454","kab":"582","invn":"7551","type":"Монитор","fio":"Иванов"}],"success":1}

<?php
 $response = array();
 require 'db_connect.php';
 $db = new DB_CONNECT();
 if (isset($_GET["invn"])) {
    $invn = $_GET['invn'];
     $result = mysql_query("SELECT * FROM device WHERE invn = $invn");
     if (!empty($result)) {
        if (mysql_num_rows($result) > 0) {
             $result = mysql_fetch_array($result);
             $device = array();
            $device["invn"] = $result["invn"];
            $device["type"] = $result["type"];
            $device["marka"] = $result["marka"];
            $device["sn"] = $result["sn"];
            $device["fio"] = $result["fio"];
            $device["kab"] = $result["kab"];
            $response["success"] = 1;
             $response["device"] = array();
             array_push($response["device"], $device);
             echo json_encode($response);
        } else {
            $response["success"] = 0;
            $response["message"] = "No product found";
             echo json_encode($response);
        }
    } else {
        $response["success"] = 0;
        $response["message"] = "No product found";
         echo json_encode($response);
    }
} else {
    $response["success"] = 0;
    $response["message"] = "Required field(s) is missing";
     echo json_encode($response);
}
?>
  • Вопрос задан
  • 2548 просмотров
Решения вопроса 1
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
google "mysql join"
SELECT device .*,type.name as type_name
FROM device 
JOIN type ON type.idtype = device.type
WHERE device.invn = $invn
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sanchezzzhak
@sanchezzzhak
Ля ля ля...
Не делайте так
$invn = $_GET['invn'];
"SELECT * FROM device WHERE invn = $invn"

Если не хотите потерять данные или сервер.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы