Valick
Новичок
так я и не спорю, если ты не заметилне вижу смысла спорить, ну чес слово
ты на ровном месте вбил себе в голову, что я не знаю о сущностях, ОРМ и прочем исключительно на основании того, что я не пишу об этом новичку на форуме
так я и не спорю, если ты не заметилне вижу смысла спорить, ну чес слово
не, потому что конечная структура совсем не похожа на то что привык видеть, как и смешание набора данных для сущности (ценф) и данных для сущности (имя) в запросе. подход велосипедный, предполагает написание state-machine.... на основании того, что я не пишу об этом новичку на форуме
Ну и при чем тут php, когда мой ответ был на реплику "учитесь грамотно организовывать стркутуру таблиц, учите правила нормализации" ?Я вам об этом с самого начала говорил, откуда мне было знать, что вы настолько "учёный", что не понимаете слова и вам надо написть готовый код?
Нет задачи выводить данные на страницу. Требуется выгрузить все товары в JSON-формате.что такое большой? сколько товаров на странице? 100? и допустим по 10 цен на товар... много. но не критично, если больше, то вероятнее всего чтото делаешь не так
hashtable на 1000 строк, не более 3х тактов процессора обычно говорят о сложности O(1)
Ну так и надо было сразу сказать, что эта фраза непонятна. Я же не экстрасенсДальше уже срадствами РНР фомируете тебуемый вид.
замени в моём коде print_r($result); на echo json_encode($result);Требуется выгрузить все товары в JSON-формате.
и сколько этих записей будет. сколько продуктов, сколько цен?все товары в JSON-формате
Это зависит от желаний и возможностей пользователей.и сколько этих записей будет. сколько продуктов, сколько цен?
НетОчередная торговая площадка что ли?
<?php
/** @var mysqli $mysqli */
$stmt = $mysqli->prepare("SELECT * FROM data");
$stmt->execute();
$res = $stmt->fetch_all(\MYSQLI_ASSOC);
if (empty($res)) return [];
$list = array_column($res, 'id');
$stmt = $mysqli->prepare("SELECT * FROM tags WHERE component = ? AND component_id IN (" . join(', ', array_fill(0, count($list), '?')) . ")");
$stmt->execute(['data', ...$list]);
$tags = array_reduce($stmt->fetch_all(\MYSQLI_ASSOC), function ($carry, $tag) {
$carry[$tag['component_id']][$tag['tag']] = $tag;
return $carry;
}, []);
foreach ($res as &$item) {
$item['tags'] = $tags[$item['id']] ?? new \ArrayObject;
}
return $res;