2015-10-03 49 views
1

經過反覆研究(也許我沒有問正確的問題),我只是在智慧的結尾。我試圖做的是連接一個數據庫與一個頁面。該頁面僅收集所有員工記錄,然後將其列爲超鏈接。這部分我想通了。但是,我無法獲得我需要的鏈接。PHP超鏈接/從SQL DB獲取單個記錄

此時,應只列出THAT RECORD的所有屬性。換句話說,當你在「瑪麗·史密斯」,一切都消失了,然後只是她出現創紀錄的點擊 - 顯示姓名,身份證等.....

?php 
$db = new SQLite3('MicroUniversity.db3'); 
echo "<fieldset style='width: 450px'>"; 
echo "<h2>Listing Employees</h3>"; 
$results = $db->query('SELECT * from EMPLOYEE ORDER BY EMP_LNAME'); 
while ($row = $results->fetchArray()){ 
    $strName = $row['EMP_LNAME'].", ".$row['EMP_FNAME'] . "," . $row['EMP_NUM']; 
    //$strLink = "<a href = 'person.php? = " . $row['EMP_NUM'] . "'>" . $strName . "</a>"; 
    $strLink = "<a href =?func=true" . $row['EMP_NUM'] . "'>" . $strName . "</a>"; 
    echo "<li>".$strLink."</li>";  
} 
    echo"</fieldset>"; 
?> 
+0

引用屬性值。您的第一條註釋掉的鏈接正確引用了'href'。除非你知道總是一個數字,否則你應該編碼'emp_num'。 – chris85

回答

1

你可能想重新加載頁面當你只想請求一個人,並且爲什麼你需要生成每個可用人員的鏈接時使用$ _GET-Parameter。 (?)

SELECT * from EMPLOYEE ORDER BY EMP_LNAME 

輸出所有員工。

你可以在你的While(..){...}裏放一些過濾器,然後在實際的人身上輸出一切。

if($_GET['person'] == $row['EMP_NUM']){ 
echo 'details ...'; 
print_r($row); 
}else{ 
echo '<BR><a href="person.php?person='.$row['EMP_NUM'].'">Link for: '.$row['EMP_FNAME'].' '.$row['EMP_LNAME'].'</a>'; 
} 

這可能是一個工作的事情,但不是最好的。然後,您可以改進它或啓動另一個SQL-Query來輸出詳細信息。但是,由於您不會將任何未經過濾的$ _GET字符串放入您的SQL字符串中,所以至少可以省略以供使用。

注意:我想你的文件名是person.php。否則改變它!這是不符合任何風格,這是你的工作:)