【发布时间】:2014-11-22 07:15:59
【问题描述】:
我有一个部分解决方案,但我不知道如何在 while 循环内根据记录字段最好地设置条件?我已经尝试过“IF”,但在 switch/case 方面做得更进一步。 我将 jpgraph 与 PHP / Postgresql 一起使用,并设置了一个开关以根据记录类型字段“rectype”格式化甘特条。在我的测试代码中,“rectype”可以是“NORMAL”或“GROUP”。 该查询确实输出表中的所有 7 条记录(使用 pgadmin3 测试),但甘特图仅输出 7 条表记录中的前 6 条,并且条形格式应用于前一条记录 - 在我的测试用例中,记录 4 具有“ rectype”字段设置为“GROUP”,但“GROUP”格式应用于记录 3。
$sql = "SELECT activity, start, due, rectype, title, FROM activity LEFT JOIN project ON activity_projectid = projectid ORDER BY activity_projectid, start";
$result = pg_query($sql);
// Add data to gantt
$i = 0;
while($act = pg_fetch_assoc($result)) {
$type = pg_fetch_result($result,"rectype");
switch($type) {
case "GROUP":
$data = new GanttBar ($i,array($act['activity'],$act['title']),$act['start'],$act['due']);
$data->SetPattern(BAND_SOLID,'black');
break;
case "NORMAL":
$data = new GanttBar ($i,array($act['activity'],$act['title']),$act['start'],$act['due']);
$data->SetPattern(BAND_RDIAG,'red');
break;
}
$graph->Add($data);
$i++;
}
【问题讨论】:
标签: php postgresql jpgraph