【问题标题】:Returning database results as an array以数组形式返回数据库结果
【发布时间】:2011-03-24 19:51:27
【问题描述】:

我有以下代码:

$a=array(
    'last' => array('Ford', 'Smith', 'Jones', 'Thomas'),
    'first' => array('Joe', 'Kyle', 'Nick'),
    );

我的数据库中有所有这些名字,还有一些更像年龄等。

如何从数据库中提取所有记录并将它们设置为 $a 的数组?我需要它们采用上述格式

【问题讨论】:

    标签: php mysql arrays codeigniter


    【解决方案1】:

    你试过了吗:

    $query = "SELECT last, first from names"; //whatever the query is...
    $results = mysql_query($query);
    $all = array();
    while($row = mysql_fetch_array($results)){
       foreach($row as $key=>$value){
           if(!isset($all[$key])) $all[$key] = array();
           $all[$key][] = $value;
       }
    }
    

    结果如下所示:

    $all=array(
        'last' => array('Ford', 'Smith', 'Jones', 'Thomas'),
        'first' => array('Joe', 'Kyle', 'Nick','Allen'),
    ...
        );
    

    【讨论】:

    • 当机会出现时,请尝试推广MySQLiPDO:MySQL,而不是过时的mysql 库。
    • 但是我不知道 $all 会有多少,如果有 20 个不同的,以及生成的新的,你将如何检查它们而不是预先定义它们作为一个数组?
    • @joseph,我不确定我是否理解你的问题,但我会尝试
    • 基本上对于 $all 你有 'last' 和 'first' 设置。这些在一张表中,还有 20 个不同的术语;即年龄、位置等。
    • 谢谢尼尔,非常感谢,虽然我很困惑。所以现在 $a 将是 $all[$key][] = $value?
    【解决方案2】:

    只是为了发布显而易见的......@Neal 的答案的 codeigniter 活动记录应用程序如下所示:

    $this->db->select('first,last,age');
        $query = $this->db->get('my_table');
        $results = $query->results();
        if($query->num_rows() > 0 ){
            foreach($results as $result as $key=>$value){
                $all[$key][] = $value;
            }
    

    我省略了检查,因为我通常在视图中这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-16
      • 1970-01-01
      • 2021-03-06
      • 2010-12-05
      • 2017-04-04
      • 2010-10-09
      • 1970-01-01
      相关资源
      最近更新 更多