使用postres获取id和名称,使用key作为id创建php数组,并将值作为名称

时间:2012-06-05 17:59:39

标签: php database arrays postgresql

我正在查询我的postgres数据库,并获得如此名称和ID:

$datesQuery = "SELECT date_ridden, id from dates WHERE user_id=$userId"; //query
$theDates = pg_query($db, $datesQuery); //execute query
$dates=array(); //want to use this array to have the key as id and value as date_ridden

我想创建我的$ dates数组,其中id为键,date_ridden为值。

目前我正在做以下事情(这不是我想做的事):

while( $date = pg_fetch_row($theDates) ){
        $dates[]['value'] = $date[1]; //date id is value
        $dates[]['label'] = $date[0]; //date (in text form) is the label
}

我觉得这应该是一件非常简单的事情,但由于某些原因无法弄明白。

2 个答案:

答案 0 :(得分:1)

我相信您正在寻找的循环结构是:

while( $date = pg_fetch_row($theDates) ){
    $dates[$date[1]] = $date[0];
}

如果我误解了,那么您当前尝试的问题是它将id和标签作为单独的数组索引追加到$dates

而是试试这个:

while( $date = pg_fetch_row($theDates) ){
    $dates[] = array('value' => $date[1],
                     'label' => $date[0]);
}

通过此示例,您可以访问Value = $dates[0]['value'], Label = $dates[0]['label']

之类的条目

希望其中一个有所帮助。

答案 1 :(得分:0)

如果我明白你的要求,那就是这样的

while( $date = pg_fetch_row( $theDates ) ) {
    $dates[][$date[1]] = $date[0];
}

或者如果您想要访问$ date ['some id']那么

while( $date = pg_fetch_row( $theDates ) ) {
    $dates[$date[1]] = $date[0];
}