我在MySQL DB有一张桌子,它存储餐厅在每个工作日和时段提供的菜单。
表的结构如下:
i_type i_name i_cost i_day i_start i_end
--------------------------------------------------------
Breakfast Prantha 20 Sunday 07:00 11:00
Lunch Special 80 Sunday 11:01 15:00
Dinner Special 100 Sunday 15:01 21:00
Breakfast Prantha1 50 Monday 07:00 11:00
Lunch Special1 70 Monday 11:01 15:00
Dinner Special1 130 Monday 15:01 21:00我想按以下方式显示菜单:
<b>Sunday</b><br/>
Breakfast<hr/>Prantha 20 Add<br/><br/>
Lunch<br/><hr/>Special 80 Add<br/><br/>
Dinner<br/><hr/>Special 100 Add<br/><hr/>
<b>Monday</b><br/>
Breakfast<hr/>Prantha 20 Add<br/><br/>
Lunch<br/><hr/>Special 80 Add<br/><br/>
Dinner<br/><hr/>Special 100 Add<br/><hr/>我现正处理以下事项:
$sql = SELECT * FROM `tabl1` WHERE 1;
$data = DB::instance()->prepare($sql)->execute()->fetchAll();
foreach($data as $row){
//print values
}
but this approach print Sunday and Monday multiple times. 发布于 2015-02-06 15:23:01
只需跟踪您输出的日期,例如使用“状态机”:
$previousday = null;
while($row = ... fetch from db... ) {
if ($row['day'] != $previousday) {
... output day header
$previousday = $row['day'];
}
... output row data ...
}发布于 2015-02-06 15:19:36
当然,它会打印三个星期天和三个星期一。
例如,您可以首先选择所有不同的日子(从菜单中选择DISTINCT ( i_day ) ),然后为每一天选择所有的菜单(选择*i_day= ?)
$sql = "SELECT DISTINCT (i_day) FROM menu";
$data = DB::instance()->prepare($sql)->execute()->fetchAll();
foreach($data as $row){
// Add all i_day's to an associative array $i_days
}
foreach($i_days as $day) {
$sql = "SELECT * FROM menu WHERE i_day = $day";
$data = DB::instance()->prepare($sql)->execute()->fetchAll();
foreach($data as $row){
// Print values
}
}发布于 2015-02-06 16:35:47
试试这个:
$stat = "SELECT * from TABLE_NAME";
$conn -> query ($stat);
foreach($conn -> query($stat) as $menu) {
echo $menu["i_day"];
echo $menu["i_type"];
echo $menu["i_name"];
echo $menu["i_cost"];
}根据您的需要对上述数据进行格式化。我刚给你提供了基本代码。
交替地,
$stat = "SELECT * from TABLE_NAME where i_day = 'DAY_GOES_HERE'";
$conn -> query ($stat);
foreach($conn -> query($stat) as $menu) {
echo $menu["i_type"];
echo $menu["i_name"];
echo $menu[i_cost];
}每天重复一遍。
https://stackoverflow.com/questions/28368848
复制相似问题