2017-07-19 2 views
1

J'essaye de faire un tableau en utilisant le resultset d'une requête PDO.Comment générer un tableau multidimensionnel à partir d'un jeu de résultats PDO?

Je ne suis pas sûr de savoir comment générer ma structure de tableau souhaitée.

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

Je voudrais ce résultat:

$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

Cela se sent comme une manipulation supplémentaire. Vous pouvez simplement utiliser un alias de 'name' dans la colonne' username' de votre requête. Quelle est la prochaine étape? Pourquoi préparez-vous vos données resultset de cette façon? – mickmackusa

Répondre

2

On peut supposer que vous essayez de le faire?

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

C'est une poussée de tableau trouvé ici in the manual. Si ce n'est pas ce que vous voulez dire, vous devrez clarifier.

2

Vous devez spécifier le format de sortie de requête 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);