2010-10-23 14 views
1

J'avais besoin de changer une requête en une JOIN de deux tables.Comment faire pour obtenir le jeu de résultats PDO QUERY de php dans un seul tableau au lieu d'être imbriqué dans un

$q = "SELECT * FROM table1 AS a JOIN table2 AS b USING(id) WHERE a.id= $id"; 
$stmt = db::getInstance()->prepare($sql); 
return $stmt->fetchAll(PDO::FETCH_ASSOC); 

tout, le coup à chaque valeur de la ligne, je ne peux pas se référer à $rows['value'] , mais je dois utiliser $rows[0]['value'].

Comment puis-je éviter ce comportement et obtenir les valeurs dans la ligne sans utiliser [0]?

Merci, Richard

+1

Quelle est la requête? Quelle méthode utilisez-vous pour récupérer le jeu de résultats? Pourriez-vous juste faire '$ rows = $ rows [0];'? – kijin

+0

Merci, j'ai déjà utilisé $ rows [0] pour obtenir une solution rapide. J'ai édité la question. – Richard

+2

Je suis impatient de savoir, comment pensez-vous que ce tableau devrait ressembler? Plusieurs lignes dans un "tableau unique". –

Répondre

0

J'utilise les éléments suivants pour retourner une ligne:

$SQL = "SELECT myColumn FROM myTable"; 
$STH = $DBH->prepare($SQL); 
$STH->execute(); 
$row = $STH->fetch(); 
if ($STH->rowCount > 0) { 
    $myColumn = $row['myColumn']; 
} 

Et j'utilise ceci pour retourner plusieurs lignes:

$SQL = "SELECT myColumn FROM myTable"; 
$STH = $DBH->prepare($SQL); 
$STH->execute(); 
$STH->setFetchMode(PDO::FETCH_ASSOC); 
if ($STH->rowCount() > 0) { 
    while ($row = $STH->fetch()) { 
     $myColumn = $row['myColumn']; 
    } 
}