2017-06-09 11 views
-1

whileループの外ですべてのデータベース結果を出力できますか? 私は別のエコーの中でそれを使いたいです。PHP PDOの結果が{}の間に出力されます

$sql = $db->prepare("SELECT color FROM table WHERE type = :key"); 
$sql->bindValue(':key', $type, PDO::PARAM_STR); 
$sql->execute(); 

while($rows = $sql->fetch(PDO::FETCH_BOTH)) { 
     $colors = $rows ['color']; 

     echo $colors; //Outputs all results 
    } 

echo $colors; //Outputs only last result 
+0

ループの外で最初に変数として保存します。何を試しましたか? – Carcigenicate

+0

あなたはコンカットが何であるかを知る必要があります。 –

+0

あなたは配列を使用することができます。すべてのデータを配列に入れて、ループの外側で使用します。 – Ironic

答えて

2

確かには、単にアレイにそれらを格納します。

$sql = $db->prepare("SELECT color FROM table WHERE type = :key"); 
$sql->bindValue(':key', $type, PDO::PARAM_STR); 
$sql->execute(); 

$colors = []; 
while($rows = $sql->fetch(PDO::FETCH_BOTH)) { 
     $colors[] = $rows ['color']; 

    } 

print_r($colors) 
+0

@ mr.voidありがとう! – Misha

0

の代わりにあなただけのPDOStatement::fetchAllメソッドを持つ配列として、一度にすべての結果を得ることができ、アレイに保存するために、whileループをやって

$sql = $db->prepare("SELECT color FROM table WHERE type = :key"); 
$sql->bindValue(':key', $type, PDO::PARAM_STR); 
$sql->execute(); 

$colors = $sql->fetchAll(PDO::FETCH_BOTH)); 
print_r($colors); 
関連する問題