【发布时间】:2013-12-02 04:40:46
【问题描述】:
我不是第一次使用 foreach 循环。但是我第一次看到 foreach 循环不起作用。我检查了我的代码大括号,一切顺利。起初我将我的查询保存在一个模型中,之后我将脚本直接写入我的视图页面。但是,当我使用 foreach 时,不使用我的页面显示为空白。查询功能也起作用了。
这里是查询:
$homeigw = $this->db->query("SELECT * FROM data INNER JOIN trunk_info ON trunk_id = trunc_group WHERE trunk_type = 'igw'");
foreach($homeigw->result() as $igww){
echo $igww->id;
}
这是我的查看页面:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Report Generator ASR/ACD</title>
<script type="text/javascript" src="<?php echo base_url();?>js/tcal.js"></script>
<link rel="stylesheet" type="text/css" href="<?php echo base_url();?>style/tcal.css" />
<link rel="stylesheet" type="text/css" href="<?php echo base_url();?>style/css/menu.css" />
<style>
#dashboard { width: 100%;height:auto;background-color: #ffffff;}
#dashboard .dbox{width: 320px;height: 300px;float:left;padding: 5px;margin: 15px;border: 1px solid #cccccc;}
#dashboard .dbox h2{background-color: #123;color: #FF9933;font-size: 10pt;font-weight: normal;padding-left:10px;height: 20px;text-align: center;padding-top:5px; }
#dashboard .dbox ul li{word-spacing: 70px; }
#dashboard .dbox ul li:hover{background-color: #123;color: #FFFFFF; }
#dashboard .dbox ul { width:280px; height: 200px;overflow: scroll;}
#dashboard .dbox p{width: 130px;padding: 5px;background-color: #123;margin-left:5px;color: #FF9933;}
.floatleft{float:left;}
.floatright{ float:right;}
</style>
<script type="text/javascript" src="<?php echo base_url(); ?>js/tabber.js"></script>
<link rel="stylesheet" href="<?php echo base_url(); ?>js/example.css" TYPE="text/css" MEDIA="screen">
<script type="text/javascript">
document.write('<style type="text/css">.tabber{display:none;}<\/style>');
</script>
</head>
<body>
<div id="container">
<div id="body">
<h1><br /><strong>Report Generator</strong></h1>
<?php date_default_timezone_set('Asia/Dacca'); include 'menu.php';?>
<?php
$preday = date('Y-m-d',strtotime('-190 days'));
$today = date('Y-m-d');
include "./chart/libchart/classes/libchart.php";
$chart = new VerticalBarChart();
$dataSet = new XYDataSet();
$query = mysql_query("SELECT DATE_FORMAT(c_date,'%Y-%m-%d') as DATE,
sum(answer_time_duration) as total from data
where DATE_FORMAT(c_date,'%Y-%m-%d') >= '$preday' AND DATE_FORMAT(c_date,'%Y-%m-%d') <= '$today' AND
trunc_group IN
(0,1,111,211,311,312,511,611,121,221,321,322,421,422,521,621,961,100,101,1211,1212,1311,1312,
1511,1611,2011,2211,2511,2611,2911,3011,3611,3711,3911,1811,2311)
group by DATE_FORMAT(c_date,'%Y-%m-%d')") or die(mysql_error());
while($row = mysql_fetch_array($query)){$dataSet->addPoint(new Point($row['DATE'], round($row['total']/60)));}
$chart->setDataSet($dataSet);
$chart->render("./chart/generated/chart.png");
?>
<img alt="" src="<?php echo base_url();?>/chart/generated/chart.png" style="border: 1px solid gray;"/>
<div id="dashboard">
<div class="tabber">
<div class="tabbertab">
<h2>IGW </h2>
<p>
<table id="datatable" border="1" cellpadding="0" cellspacing="0" width="100%">
<thead>
<tr>
<td>Date</td>
<td>Trunk ID</td>
<td>Trunk Name</td>
<td>Call Attempt Time</td>
<td>Alert Times</td>
<td>Answer Time Duration (MIN)</td>
</tr>
</thead>
<tbody>
<?php $homeigw = $this->db->query("SELECT * FROM data INNER JOIN trunk_info ON trunk_id = trunc_group WHERE trunk_type = 'igw'");
foreach($homeigw->result() as $igww){
echo $igww->id;
}
?>
</tbody>
</table>
<div style="clear:both;"></div>
</p>
</div>
<div class="tabbertab">
<h2>ANS - INT</h2>
<p>Tab 2 content.</p>
</div>
<div class="tabbertab">
<h2>ANS IGW</h2>
<p>Tab 3 content.</p>
</div>
</div>
<!-- END -->
<div style="clear:both;"></div>
</div>
</div>
</div>
</div>
</body>
</html>
任何有价值的建议将不胜感激。
【问题讨论】:
-
顺便说一句,数据库相关的操作应该在模型而不是视图中进行,应该是模型 --> 控制器 --> 视图
-
当我在视图页面中加载模型时,同样的事情正在发生。如果我删除 $this->Dboard_model->hometab_igw(); html 页面结构运行良好。否则页面为空白。
-
您是否真的从该查询中获取行,可能在 foreach 之前执行 $homeigw->num_rows() 会有所帮助..?
-
是的。如果我使用过 $homeigw->num_rows();它正在显示行号。还使用了 print_r($homeigw);
标签: php codeigniter loops foreach