2012-09-08 38 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(); 
} 
相關問題