2016-12-09 12 views
1

私は作成したデータベースを照会するためにsql文でfetchAll(PDO :: FETCH_ASSOC)を使用していますが、現在はprint_r()を参照する手段として使用しています。しますprint_rはfetchAll()の結果の書式設定

Array ([0] => Array ([Type] => Poison, Invicibility, Heals [First_Name] => Acton [Last_Name] => Mooney) 
     [1] => Array ([Type] => Telepathy, Mind-Control [First_Name] => Adam [Last_Name] => Warlock) 

例えば、私が見たいので、私はそれは素晴らしく、きちんと作るためにスタイルにテーブルにこの情報を入れてループを使用しようとしているような値を返します。

  Type       First_Name Last_Name 
Poison, Invicibility, Heals    Acton   Mooney 
Telepathy, Mind-Control     Adam   Warlock 

しかし、私は現在、これを実装する方法に固執しています。私はそれはループのいくつかのタイプが含まれて知っているが、クエリは動的であり、時には3つ以上の情報の行を持つことができますので、少し混乱。

答えて

1

fetchAll()を使用せずに、結果を読み取るときにwhileループを使用します。

$stmnt = $db->prepare($sql); 
$stmnt->execute($aParams); 
while($row = $stmnt->fetch()) { 
    echo stuff here.... 
} 
$stmnt = null; 

編集:問題の明確化に基づく

// Use fetchAll as you have 
$aResults = $stmnt->fetchAll(PDO::FETCH_ASSOC) 

// Then, check you have results 
$numResults = count($aResults); 
if (count($numResults) > 0) { 
    // Output the table header 
    echo '<table><tr>'; 
    foreach ($aResults[0] as $fieldName=>$value) { 
     echo '<th>' . htmlspecialchars($fieldName) . '</th>'; 
    } 
    echo '</tr>'; 

    // Now output all the results 
    foreach($aResults as $row) { 
     echo '<tr>'; 
     foreach ($row as $fieldName=>$value) { 
      echo '<td>' . htmlspecialchars($value) . '</td>'; 
     } 
     echo '</tr>'; 
    } 

    // Close the table 
    echo '</table>'; 
} else { 
    echo 'No results'; 
} 
「それと、私の問題は、私のクエリが動作する方法は、それが任意のテーブルを照会することができるということですので、私は列番号と名前を知っていますかどのように」このよう
+0

私の問題は、私のクエリが動作する方法は、それができるということですので、私は列番号と名前を知っていますかどのように任意のテーブルを照会します。ループにこの情報を解析するよう指示する方法はありますか? – sippycup

+0

これはまさに私があなたに感謝の助けが必要なものです! – sippycup

+0

ようこそ。もっときれいな質問;) Robbie

0

、それと

<?php 

$arr = array (0 => array ('Type' => 'Poison, Invicibility, Heals', 'First_Name' => 'Acton', 'Last_Name' => 'Mooney') , 
     1 => array ('Type' => 'Telepathy, Mind-Control', 'First_Name' => 'Adam', 'Last_Name' => 'Warlock')) ; 

echo "<table><tr><th>type</th><th>type</th><th>type</th></tr>"; 

foreach ($arr as $key=>$val) { 
    echo "<tr>"; 
    echo "<td>".$val['Type']."</td>"; 
    echo "<td>".$val['First_Name']."</td>"; 
    echo "<td>".$val['Last_Name']."</td>"; 
    echo "</tr>"; 
}   
echo "</table>";