简体   繁体   English

如何在MySQL + PHP中将所有列作为行

[英]How to get all columns as rows in MySQL + PHP

I have a table in MySQL DB like this one: 我在MySQL DB中有一张这样的表:

> NAME     |   VALUE
>--------------------
> Jon      |    0.2
> Galson   |    0.34
> Sam      |    0.5

I need to display this table in my web app with something like this: 我需要在Web应用程序中显示此表,如下所示:

> NAME    |     Jon     |   Galson   |    Sam
> VALUE   |     0.2     |    0.34    |    0.5

I just want to convert database column into rows using MYSQL + PHP only for display purpose. 我只想使用MYSQL + PHP将数据库列转换为行,仅用于显示目的。

You should not be doing this using a (probably complex) SQL query. 您不应该使用(可能很复杂的)SQL查询来执行此操作。 Instead rely on HTML/CSS for this: 而是依靠HTML / CSS:

Assuming 假设

$data = [{name: 'Jon', value: 0.2}, {name: 'Galson', value: 0.34}, {name: 'Sam', value: 0.5}]

you could 你可以

foreach($data as $person) {
    echo '<div class="person">';
    echo '<div class="name">' . $person->name . '</div>';
    echo '<div class="value">' . $person->value . '</div>';
    echo '</div>';
}

and

.person {
    float: left; 
}

Also don't , never ever, under any circumstances, build HTML like that. 不要 ,永远不会在任何情况下,建立HTML这样的。 Use some kind of templates. 使用某种模板。

You should check out @Sergiu Paraschiv answer. 您应该查看@Sergiu Paraschiv的答案。 What you definitely do not want to do is use the deprecated mysql_db_query() . 您绝对不希望使用已弃用的mysql_db_query() Alternatively try something like this: 或者尝试这样的事情:

<?php
$db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password');
$stmt = $db->query('SELECT name, value FROM table');
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

$output = [];

foreach($results as $row) {
    $output[$row['name']] = $row['value'];
}
print_r($output);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM