php - 在 php 表中显示包含行的列

标签 php mysql sql

大家好我需要你的帮助,我有这张 table

enter image description here

我想要这样的节目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。

然后第二行只是一个简单的 unitvaltotval 根据 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/

相关文章:

PHP/MySQL 如何在博客文章中重复使用 ID,而不是每次都使用 +1

php - 检测主/客户端是否在 SQL 同步期间删除了条目

MySQL 查询 : I want to use aggregate function between two tables?

php - 无法删除图像上方和下方的空白

php - 将 CSS 导航栏与 Wordpress 页面链接起来

php - 计算值并从 MySQL 导出到 csv

mysql - 使用MySQL获取当前在线员工

mysql - #1054 - 'b.ID_TRANSAKSIJUAL' 中的未知列 'field list'

sql - 如果我需要请求那 1 行中的所有数据,列数是否重要?

mysql - 计算行数并仅从表中获取最后一行