0

私は以前にこれを尋ねようとしましたが、実際には答えが得られなかったので、言い換えてみます。特にPDOを使用して、複数行のクエリの結果を別の関数またはページに渡す方法がわかりません。元の関数でループを実行しますか?

public function viewGallery(){
    $pQuery = 'SELECT * FROM profiles WHERE  userId = ?';
    $viewGallery = $this-> _db ->prepare($pQuery);
    $viewGallery ->bindParam(1, $id);
    $viewGallery ->execute();

    while ($get_row = $viewGallery ->fetch()){
        $id = $get_row['id'];
    }
}

次に、これにアクセスする別のページ:

 //echo the results of viewGallery();
4

3 に答える 3

1

viewGallery()から必要な結果を返し、他のページにエコーする必要があります。

結果の配列(外観によるID)を返し、他のページでwhileループを使用して結果を表示し、それらを表示することができます。

while ($get_row = $viewGallery ->fetch()){
    $id = $get_row['id'];
    $myBigArray[] = $id;
}

return $myBigArray;

次に、他のページでループして各結果をエコーし​​ます

于 2012-09-08T15:42:56.333 に答える
1

SQLがを返すと仮定するとcol1col2col3

結果を渡すには、次の手順を実行できます。

while ($get_row = $viewGallery ->fetch())
{
    $col1 = $get_row['col1'];
    $col2 = $get_row['col2'];
    $col3 = $get_row['col3'];
    someFunctionNameThatEchoesResults($col1, $col2, $col3);
}

すべての結果を配列に入れて、それを他の関数に渡すこともできます

$resArray=array();
while ($get_row = $viewGallery ->fetch())
{
    $col1 = $get_row['col1'];
    $col2 = $get_row['col2'];
    $col3 = $get_row['col3'];
    $resArray[]=array($col1, $col2, $col3);
}
someFunctionNameTheShowsResults($resArray);
于 2012-09-08T15:43:13.713 に答える
0

完全なデータセットを返すだけですfetchAll()

以下のようなもの

try {
    $dbh = PDO(/* Connection Info */);
    $query = "SELECT * FROM foo";
    $stmt = $dbh->prepare($query);

    $stmt->execute();

    return $stmt->fetchAll();
}catch(PDOException $e) {
    echo "ERROR: " . $e->getMessage();
}
于 2012-09-09T00:56:00.403 に答える