테이블이
barcode(barcode, food_code, company_code)
food(food_code, food_name)
company(company_code, company_name)
이렇게 있는데 처음엔 join을 써서 하려니까 시간이 너무 걸리더라구요...
그래서 select를 3번 써서 빠르게 하려는데 php에서 다중 쿼리 select 쓰는 방법 검색해서 해보는데 원하는 결과가 안 나옵니다...
첫번째 쿼리문은 바코드를 입력하면 barcode.food_code
를 거쳐 food.food_name
을 가져오려고 합니다.
두번째 쿼리문은 바코드만 가져옵니다.
세번째 쿼리문은 바코드를 입력하면 barcode.company_code
를 거쳐 company.company_name
을 가져옵니다.
최종적으로 제가 원하는 결과는 url에 바코드를 하나 입력하면 그 바코드에 맞는 정보들을 가져와 배열에 넣는겁니다. 다중 쿼리 select 어떻게 써야 배열에 들어가나요?
밑에는 제가 짰던 php문입니다.
<?php
require_once 'conn.php';
if (isset($_GET['barcode'])) {
$barcode = $_GET['barcode'];
$query = "select FOOD_NAME FROM food WHERE FOOD_CODE=(select FOOD_CODE FROM barcode WHERE BARCODE=(select BARCODE FROM barcode WHERE BARCODE='$barcode')); ";
$query .= "select BARCODE FROM barcode WHERE BARCODE='$barcode'; ";
$query .= "select COMPANY_NAME FROM company WHERE COMPANY_CODE=(select COMPANY_CODE FROM barcode WHERE BARCODE=(select BARCODE FROM barcode WHERE BARCODE='$barcode'));";
$response = [];
if (mysqli_multi_query($conn, $query)) {
do {
if ($result = mysqli_store_result($conn)) {
while ($row = mysqli_fetch_row($result)) {
array_push(
$response, [
'barcode' => $row['BARCODE'],
'food_name' => $row['FOOD_NAME'],
'company_name' => $row['COMPANY_NAME']
]
);
}
mysqli_free_result($result);
}
} while (mysqli_next_result($conn));
}
echo json_encode($response);
}
mysqli_close($conn);