2013-01-23 24 views
0

我現在有一個非常大的問題,我無法找到它的解決方案,所以我希望得到一些幫助。SQL,php的pdo和retreiving錶行

我從一個表,可以使用下面的查詢選擇特定的列

$stmt = $db->prepare('SELECT Info FROM Info;'); 
$stmt->execute(); 
$res = $stmt->fetchAll(PDO::FETCH_ASSOC); 

然後我使用PHP

<div id="two"> 
<?php 
if(!$resTwo) 
echo"No Content Available Yet.."; 
else 
echo "<ul>"; 
foreach($resTwo AS $val) { 
echo "<tr>"; 
foreach($val AS $val1) { 
    echo "<td>$val1</td>"; 
    } 
} 
echo "</ul>"; 
$db = null; 
?> 
</div> 

正在輸出它現在,這裏是問題。這個腳本適用於一個頁面,但問題是我有幾個頁面看起來完全一樣,唯一不同的是我從db中添加的內容。所以我寧願如果我可以避免在每個頁面中寫一個新的腳本,而是使用某種上面所做的SELECT索引。

如果我想解決這個問題,我將不得不改變每頁

$stmt = $db->prepare('SELECT Info FROM Info WHERE rowid = 1;'); 
$stmt = $db->prepare('SELECT Info FROM Info WHERE rowid = 2;'); 
$stmt = $db->prepare('SELECT Info FROM Info WHERE rowid = 3;'); 
$stmt = $db->prepare('SELECT Info FROM Info WHERE rowid = 4;'); 

以下...

+0

http://stackoverflow.com/questions/14480555/database-php-pdo-and-html –

+0

不知道這是否會幫助,但你可以這樣做:'WHERE的rowid IN(1,2, 3,4)' – andy

回答

2

您可以通過$ _GET或$ _POST獲取參數並在查詢中使用它。請參閱:

$var = $_GET['id']; 
$stmt = $db->prepare('SELECT Info FROM Info WHERE rowid = :RowId'); 
$stmt->bindParam(":RowId", $var, PDO::PARAM_INT); 
$stmt->execute(); $res = $stmt->fetchAll(PDO::FETCH_ASSOC); 
1
  • 添加一個PHP函數,並在的common.php添加以下代碼:

    <php  
    
    function getRowContentResultSet($rowId) 
    { 
    
        $stmt = $db->prepare('SELECT Info FROM Info WHERE rowid = :rowId'); 
        $stmt->execute(array(':rowId' => $rowId)); 
        $res = $stmt->fetchAll(PDO::FETCH_ASSOC); 
    
        return $res; 
    } 
    
    ?> 
    
  • 包含此功能(的common.php)爲所有頁面共同(或一組頁面)。

  • 然後在每個頁面中按以下格式調用此函數。

    $resTwo = getRowContentResultSet($_GET['rid']); 
    
  • 所有網頁網址應包含GET參數 「擺脫」 例如:http://yoursite.com/page.php?rid=1

注:我因此未改變你的HTML部分。即使這樣,你也可以放入一個通用的template.php文件,並只包含在你的頁面中。

+0

嗨@Dino Excel請讓我知道這是否有幫助。 – OMG