2017-01-03 10 views
0

SQLクエリによってオプションが設定されているページに複数回表示される選択ボックスを作成しようとしています。私はこれを一度表示することができますが、2番目の同じ選択ボックスを作成しようとすると、ドロップダウンボックスにオプションが表示されません。ここに私が働いているものがあります:PDO結果セットを複数回再利用する

<?php include_once "app/init.php"; 
     $dataQuery = $db->prepare(" 
     SELECT column FROM dataType"); 

    $dataQuery->execute([]); 
    $dataTypes = $dataQuery->rowCount() ? $dataQuery : []; 
?> 

<div> 
    <select> 
     <?php foreach($dataTypes as $dataType): ?> 
      <option> 
       <?php echo $dataType['dataType']; ?> 
      </option> 
     <?php endforeach; ?> 
    </select> 
</div> 

しかし、私は2番目の選択ボックスを追加しようとすると、それは空白です。ユーザーがデータ型を選択するためには、この行をすべて選択するためのボックスを作成するテーブルを作成していますので、この動的に数回再作成する必要があります。私はPHPには新しいので、これについてどうやって行くのが最善の方法ですか?

マイinit.phpはPDOを使用して表示する:

<?php session_start(); 
    $_SESSION['user']=1; 
    $db = new PDO ('mysql:dbname=myDB;host=localhost', 'root', 'root'); 
    if(!isset($_SESSION['user'])) { 
    die('You are not signed in'); 
}; 
+0

を行いますが(http://stackoverflow.com/questions/1155211/what-is-pdo-scrollable [カーソル]のために求めています-cursor)タイプで巻き戻すことができます。 MySQLまたはPDOがそれをサポートしているかどうかは分かりません。ただし、できるだけ早く結果セットをリリースすることをお勧めします(少なくともデザインの観点からは、パフォーマンスのためでない場合)。だから私は本当に私はそれを使用する前に変数に情報を格納するだろう。 –

答えて

1

あなたは一度PDO声明を通じてのみループすることができますので、あなたは一時的な配列で結果を置く必要があります。

の代わりに:

$dataTypes = $dataQuery->rowCount() ? $dataQuery : []; 

$dataTypes = $dataQuery->fetchAll(\PDO::FETCH_ASSOC); 
+0

これはまさに私が探していたものです。どうもありがとうございます! – heat222

関連する問題