2012-09-08 72 views
0

我曾试着问过这个问题,但没有真正得到答案,所以我试着去修改它。我不知道如何将多行查询的结果传递给另一个函数或页面,尤其是使用PDO。我会在原始函数中执行循环吗?你如何将一个SQL查询传递给PHP中的另一个函数

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(); 

回答

1

您需要返回()从viewGallery你想要的结果的话,他们呼应其他页面上。

你可以用while循环其他网页上的返回结果(通过它的外观IDS)的数组,然后呼啸通过他们,以显示他们

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

return $myBigArray; 

那么其他的页面只是遍历上和呼应结果

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); 
+0

为什么不只是'$ resArray [] = $ get_row'? – Mahn

+0

@Mahn尽量让答案尽可能简单和可配置。 – Fluffeh

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(); 
} 
相关问题