2017-07-19 1 views
1

Ich versuche, ein Array mit dem Resultset aus einer PDO-Abfrage zu machen.Wie generiert man ein mehrdimensionales Array aus einem PDO-Resultset?

Ich bin mir nicht sicher, wie ich meine gewünschte Array-Struktur generiere.

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; 
); 

ich dieses Ergebnis möchte:

$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

Das fühlt sich an wie zusätzliche Handhabung. Sie könnten einfach einen Alias ​​von 'name' in der Spalte' username' in Ihrer Abfrage verwenden. Was ist der nächste Schritt? Warum bereiten Sie Ihre Ergebnissatzdaten auf diese Weise vor? – mickmackusa

Antwort

2

Vermutlich versuchen Sie, dies zu tun?

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']); 
} 

Dies ist ein Array Push hier in the manual gefunden. Wenn Sie das nicht meinen, müssen Sie klären.

2

Sie sollten das SQL-Abfrage Ausgabeformat angeben:

$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); 
Verwandte Themen