大家好我需要你的帮助,我有这张 table
我想要这样的节目FIDDLE ,真的我不知道该怎么做,因为有时只存在两列(prov_name),有时存在多于两行,如果可以的话请帮助我!
希望你能理解我。非常感谢!
这样我就可以从 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;
最佳答案
首先,为了让您的数据像那样显示,显然必须相应地对其进行分组。
第一行是 prov_name
,因此您可以使用 GROUP BY
或者您也可以在 PHP 中执行此操作。根据示例数据,它应该有 1 到 6。
然后第二行只是一个简单的 unitval
和 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>
关于php - 在 php 表中显示包含行的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25110787/