Я пытаюсь создать страницу, в которой я представляю инвентарь из бэкэнда MySQL. Вот приблизительный пример таблицы, которую я имею.Представляют уникальные элементы в той же категории
id,Server_Type,Status
1,BL460,Available
2,BL460,Available
3,BL460,Reserved
4,BL460,Reserved
5,BL460,Reserved
6,DL360,Reserved
7,DL360,Reserved
8,DL360,Reserved
9,DL580,Available
10,BL460,Available`
Чтобы отобразить эти элементы на странице, мне нужно сгруппировать каждый элемент с помощью «Server_Type». Однако просто группировать элемент по «Server_Type» в моем SQL-запросе недостаточно, поскольку уникальный идентификатор каждого элемента должен быть сохранен и представлен.
Я хочу представить выбор конечному пользователю, как это на веб-странице (используя приведенную выше таблицу в наших данных):
BL460 - Amount: 3 DL360 - Amount: 0 DL580 - Amount: 1
ПРИМЕЧАНИЕ: Я нужны детали с 0 «Доступный» количество для отображения на странице.
Для конечного пользователя не имеет значения, какой уникальный идентификатор сервера - если он/она выбирает 2 BL460, тогда во время проверки любые 2 BL460s в состоянии «Доступный» необходимо переключить на " Зарезервированный статус - не имеет значения, какие из них (я думал только о том, чтобы сделать это по приказу ASC).
Проблема, которую я использую, заключается в том, как представить страницу в формате PHP. Мне нужен способ представить каждое значение в качестве опции на странице (даже идентификатор, хотя он останется скрытым на странице, поскольку это не важно для конечного использования). Я попытался сделать это как массив, но я не знаю достаточно о PHP, чтобы использовать данные массива и правильно представлять его на странице.
Кто-нибудь знает, как это можно сделать?
EDIT: Итак, позвольте мне добавить еще некоторую информацию - я сделал этот запрос: SELECT *, COUNT(CASE WHEN Status = 'Available' THEN 1 ELSE NULL END) AS Amount FROM products GROUP BY id
который представляет собой таблицу, как это:
id,Server_Type,Status,Amount 1,BL460,Available,1 2,BL460,Available,1 3,BL460,Reserved,0 4,BL460,Reserved,0 5,BL460,Reserved,0 6,DL360,Reserved,0 7,DL360,Reserved,0 8,DL360,Reserved,0 9,DL580,Available,1 10,BL460,Available,1
А может написать массив, как это : $amounts = array(); foreach($results as $entry) {if($entry['Amount'] == 1) {if(isset($amounts[$entry['Server_Type']])) {$amounts[$entry['Server_Type']]++;} else {$amounts[$entry['Server_Type']] = 1;}}};
Что дает результат, как это: array(2) { ["BL460"]=> int(3) ["DL580"]=> int(1) }
Но это все еще не дает мне Server_Types с 0 суммой (хотя я предположил, что могу просто определить другой массив, чтобы дать желаемый результат), и я не знаю достаточно о PHP, чтобы представить эти данные в html в описанном выше формате , Я полагаю, что моя самая большая проблема заключается в том, чтобы создать такой массив в формате html. Кто-нибудь знает - или ... знает ли кто-нибудь о лучшем решении?
Это похоже, как простой цикл в PHP – Strawberry