社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

从mysql获取数据并按类别分组

Vano Nasaridze • 5 年前 • 1169 次点击  

我用这个结构从数据库中获取数据

Cars   | Category   | 1Days |   3 Days  
-------|--------------|------–--|---------––
Car1   |  Off Road  | 50.00 | 90,00  
Car2   |  Off Road  | 50.00 | 90,00  
Car3   |  Minivan   | 50.00 | 90,00  

我想把它改成

Off Road
Cars   | 1Days |    3 Days  
-------|----------|---––
Car1   |  50.00 | 90,00  
Car2   |   50.00 | 90,00  
Minivan
 Cars   | 1Days |   3 Days  
-------|----------|---––
Car3   |  50.00 | 90,00  

我想将表按类别分组

谢谢你的预付款

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39845
 
1169 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Tim Biegeleisen
Reply   •   1 楼
Tim Biegeleisen    6 年前

您可能需要从php表示层处理这个问题。以下是一种方法:

$sql = "SELECT * FROM yourTable ORDER BY category, cars";
$result = $conn->query($sql);
$category = NULL;

echo "<table colspan=\"3\">";

if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        if ($category != $row["category"]) {
            echo "<tr><td colspan=\"3\">" . $row["category"] . "</tr>";
            echo "<tr><td>Cars</td><td>1 Days</td><td>3 Days</td></tr>";
            $category = $row["category"];
        }
        echo "<tr>";
        echo "<td>" . $row["cars"] . "</td>";
        echo "<td>" . $row["1days"] . "</td>";
        echo "<td>" . $row["3days"] . "</td>";
        echo "</tr>";
    }
    echo "</table>";
}

上面的代码使用逻辑,当在结果集中看到一个尚未看到的类别时,该逻辑将打印两个标题行。第一个标题行只包含类别,第二个包含表中三列的标题。

这里一个重要的注意事项是我们使用 ORDER BY category, cars 在mysql查询中强制执行我们希望的结果集数据顺序。不使用 ORDER BY ,我们的方法可能行不通。