问题描述
**如何从连接数据库 foreach 以按类别显示食品。 谢谢你。 **
MysqL> SELECT * FROM categories;
+-----+-----------------+
| id | categories |
+-----+-----------------+
| 1 | Oven |
| 2 | Pizza |
| 3 | Salad |
| 4 | Starter |
| 5 | Coffee |
| 6 | Softdrinks |
+-----+-----------------+
MysqL> SELECT * FROM foods;
+------+----------------------+--------+--------------+
| id | name | price | category_id |
|+-----+----------------------+--------+--------------+
| 1816 | Acini | 15 | 1 |
| 1817 | Wedding Soup | 11 | 1 |
| 1818 | Pasta Campanelle | 12 | 4 |
| 1819 | Chicken Noodle Soup | 12 | 6 |
| 1820 | Pizza Valtellina | 12 | 5 |
| 1821 | Cedar Planked Salmon | 11 | 3 |
| 1822 | Italian Sausage Soup | 12 | 3 |
| 1823 | Pasta Pappardelle | 10 | 1 |
+------+----------------------+--------+--------------+
结果应该如下
$results = [
'Oven' => [
['name' => 'Acini','price' => '15'],['name' => 'Wedding Soup','price' => '11'],['name' => 'Pasta Pappardelle','price' => '10']
],'Starter' => [
['name' => 'Pasta Campanelle','price' => '12']
],'Softdrinks' => [
['name' => 'Chicken Noodle Soup','Coffee' => [
['name' => 'Pizza Valtellina','Salad' => [
['name' => 'Cedar Planked Salmon',['name' => 'Italian Sausage Soup','price' => '12']
]
];
请帮忙。 提前谢谢你。
解决方法
可能会有所帮助:
$db = mysqli_connect("host","username","password","db_name");
$result = [];
$sql = 'SELECT foods.name,foods.price,categories.categories FROM foods JOIN categories ON categories.id = foods.category_id ORDER BY categories.categories';
$data = mysqli_query($db,$sql);
while($row = mysqli_fetch_array($data,MYSQLI_ASSOC)) {
$result[$row['categories']][] = array('name' => $row['name'],'price' => $row['price']) ;
}
//output
var_dump($result);