首页 > 解决方案 > 从所有列名和值获取数据属性的更短方法

问题描述

表用户有 14 列 - id、src 链接、标题...

function get_atitles(){
    global $db;
    $st = $db->query("select * from users order by name asc");
    $arr = $st->fetchAll();
    $ht = '';
    foreach($arr as $el){
        $ht .= "<div class='atitle' data-id= " . $el['id'] . " data-src='" . $el['src'] . "... and so on for all of the 14 columns...>" . $el['title'] . "</div>\n";
    }
    echo $ht;
}

有没有更短的方法,像这样:

foreach($arr as $el){
            $ht .= "<div class='atitle' 
                 //foreach column in users $ht .= "data-" . column_name = column_value
            $ht .= ">" . $el['title'] . "</div>\n";
        }

标签: phpmysql

解决方案


也许是这样的:

function get_atitles(){
    global $db;
    $st = $db->query("select * from users order by name asc");
    $arr = $st->fetchAll(PDO::FETCH_ASSOC);
    $ht = '';
    foreach($arr as $el){
        $ht = $ht . "<div class='atitle' ";
        foreach($el as $key=>$col)
            if($key != 'title')
                $ht .= "data-".$key.'="'.$col.'" '; 
        $ht.= '>'.$el['title'] . "</div>\n";
    }
    echo $ht;
}

推荐阅读