2017-07-19 20 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

これは、余分な取り扱いのように感じています。クエリの 'username'カラムに' 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); 
関連する問題