2017-07-19 42 views
1

我想使用PDO查詢的結果集做一個數組。我不確定如何生成我想要的數組結構。如何從PDO結果集生成多維數組?

require_once("../resource/Database.php"); 

$query ="SELECT username FROM users"; 
$select = $db->prepare($query); 
$select->execute(array()); 
foreach($select as $rs) :   
    $testing = "array('city'=>".$rs['citynames']")," 

$cities = array(
    echo $testing; 
); 

我想這樣的結果:

$names= array(
    array('name'=>'Los Angeles'), 
    array('name'=>'Chicago'), 
    array('name'=>'Houston'), 
    array('name'=>'Phoenix'), 
    array('name'=>'Philadelphia'), 
    array('name'=>'San Antonio'), 
    array('name'=>'Dallas',), 
    array('name'=>'San Diego',), 
    array('name'=>'San Jose',), 
    array('name'=>'Detroit',), 
    array('name'=>'San Francisco',), 
    array('name'=>'Jacksonville',), 
    array('name'=>'Indianapolis',), 
    array('name'=>'Austin',), 
    array('name'=>'Columbus',), 
    array('name'=>'Fort Worth',), 
    array('name'=>'Charlotte',), 
    array('name'=>'Memphis',), 
    array('name'=>'Baltimore',), 
); 
+0

這感覺就像是額外的處理。您可以在查詢中的「用戶名」列上使用「name」的別名。你下一步怎麼做?你爲什麼這樣準備結果集數據? – mickmackusa

回答

2

大概你正在試圖做到這一點?

require_once("../resource/Database.php"); 
$query ="SELECT username FROM users"; 
$select = $db->prepare($query); 
$select->execute(array()); 
# You may have a snippet of code that you are missing, but incase not, 
# you have to fetch the results while() to iterate or your results. I just 
# copied your code and focused on the push, not the fact you didn't fetch 
while($rs = $select->fetch(PDO::FETCH_ASSOC)) { 
    $names[] = array('name'=>$rs['citynames']); 
} 

這是在這裏發現的數組推送in the manual。如果這不是你的意思,你將不得不澄清。

2

應指定SQL查詢的輸出格式:

$query ="SELECT username FROM users"; 
$select = $db->prepare($query); 
$select->execute(array()); 
foreach($select->fetchAll(PDO::FETCH_ASSOC) as $rs) { 
    $testing[] = array('city' => $rs['citynames']); 
} 

var_dump($testing);