badr aldeen
badr aldeen

Reputation: 470

How can I get all id's from a database column into one single array?

How can I fetch all the values from columns (like an id column) and put them into an array?

I'm using PDO API and I tried with other code, but it's not working for me.

$STH = $DBH->query('SELECT Tid  from Playlist ');
$STH->setFetchMode(PDO::FETCH_OBJ);
$result = $STH->fetch();

while($result = mysql_fetch_array($result)) {
    $ids_array[] = $result['Tid'];
}

Upvotes: 1

Views: 2873

Answers (2)

Dalek
Dalek

Reputation: 115

You can directly return an id array by specifying the PDO::FETCH_COLUMN.

$stmt = $DBH->query("SELECT Tid from Playlist");
$ids_array = $stmt->fetchAll(PDO::FETCH_COLUMN);

Upvotes: 8

Rizier123
Rizier123

Reputation: 59681

You are mixing mysql_* and PDO, which is obviously not going to work.

Just fetchAll() your results and then just merge all rows into one array by simply looping through all rows with array_map() and returning the id, e.g.

$stmt = $DBH->query("SELECT Tid  from Playlist");
$result = $stmt->fetchAll(PDO::FETCH_OBJ);
$ids = array_map(function($v){
    return $v->Tid;
}, $result);

print_r($ids);

Upvotes: 3

Related Questions