下面我有一些代码演示了我想要动态完成的硬编码示例。
在较高的层面上,我希望做一些像select * from view_data_$app_state
这样的事情,然后动态地将那个视图表中的所有数据都放到我的胡子模板中。
我目前必须使用的代码将特定列的多行数据与视图数据分组:
<?php
error_reporting(E_ALL);
class Example {
function __construct(){
try {
$this->db = new PDO('mysql:host=localhost;dbname=Example', 'root','drowssap');
}
catch (PDOException $e) {
print($e->getMessage());
die();
}
}
function __destruct(){
$this->db = null;
}
function string_to_array($links_string){
return explode(",", $links_string);
}
function get_view_data(){
$q = $this->db->prepare('select *, GROUP_CONCAT(`links`) as "links" from `view_data_global` ');
$q->execute();
$result = $q->fetchAll(PDO::FETCH_ASSOC);
return $result;
}
}
$Example = new Example();
$result = $Example->get_view_data();
$result[0]["links"] = $Example->string_to_array($result[0]["links"]);
echo json_encode($result);
这给了我完美的对象 GROUP_CONCAT似乎是这样做的技巧,但是在编写查询之前我必须知道包含多行的列名。我试图找出一种方法,并希望创建一个自定义查询+代码示例,将cols与多行null null并不是空数据转换为如上所述的数组 - 但返回数据..再次像代码以上。
以下是实际数据的输出:
[{"id":"1","title":"This is the title test","links":["main","about","store"]}];
如何在每个视图表上动态复制此过程?
非常感谢你!
答案 0 :(得分:0)
您可以使用PDOStatement::fetch
检索结果,fetch_style
设置为PDO::FETCH_ASSOC
(其他一些值也会提供相同的信息)。在这种情况下,结果集将按列名索引数组。您可以使用foreach (array_expression as $key => $value)
有关其他信息,请参阅documentation。