嘿伙计们,我需要你的帮助,我有这张桌子
我希望像FIDDLE那样显示,我真的不知道如何做到这一点,因为有时只存在两列(prov_name),如果可以,有时会存在两行,请帮助我! / p> 希望你了解我。非常感谢!
通过这种方式,我可以从Joomla中选择数据。
$db =& JFactory::getDBO();
$query = 'SELECT prov_name FROM provprices where CA_id = '.$CA_id;
$db->setQuery($query);
$result = $db->loadObjectList();
$prov_name = $result[0];
echo $prov_name->prov_name;
答案 0 :(得分:1)
首先,为了使您的数据显示得如此明显,必须相应地进行分组。
第一行是prov_name
,因此您可以使用GROUP BY
或者您也可以在PHP中使用unitval
。根据样本数据,它应该从1到6。
根据totval
的数量,第二行只是一个简单的prov_name
和$db = new PDO('mysql:host=localhost;dbname=DATABASE_NAME;charset=utf8', 'USERNAME', 'PASSWORD');
$data = array();
$results = $db->query("SELECT * from YOUR_TABLE_NAME");
while($row = $results->fetch(PDO::FETCH_ASSOC)) {
$data[$row['prov_name']][] = $row;
}
$keys = array_keys($data);
$size = count($keys);
$vals = array();
// grouping:
// if there are six (cam1 to cam6)
// then group them by cam1, ... to cam6, then repeat until theres no more left
while(count($data) > 0) {
foreach($keys as $key) {
if(!empty($data[$key])) {
$vals[] = array_shift($data[$key]);
} else {
unset($data[$key]); // remove them if empty
}
}
}
$vals = array_chunk($vals, $size); // split them by how many prov_names
?>
<table border="1" cellpadding="10">
<!-- PROV NAMES -->
<tr><?php for($x = 1; $x <= $size; $x++): ?>
<th colspan="2"><?php echo "prov_name $x"; ?></th>
<?php endfor; ?></tr>
<!-- unitval totvals -->
<tr><?php for($x = 1; $x <= $size; $x++): ?>
<td>unitval</td><td>totval</td>
<?php endfor; ?></tr>
<!-- the grouped values -->
<?php foreach($vals as $val): ?>
<tr>
<?php foreach($val as $v): ?>
<td><?php echo $v['unitval']; ?></td>
<td><?php echo $v['totval']; ?></td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
</table>
。
第三是,其余的是价值观的分组。参见示例:
{{1}}
答案 1 :(得分:0)
我认为你必须先这样做,
尝试循环以在水平方向显示prov_name,
然后使用
在查询中再次获取&#34; SELECT * FROM table_test where prov_name =&#39; $ prov_name&#39;&#34;
在Variable $ prov_name中,您必须具有CAM2或CAM3 .etc
的值 抱歉只是一个逻辑:)