2014-12-05 44 views
0

我是一個完整的初學者,使用MySQL數據庫和PHP使用記錄列表中的單個記錄加載頁面。 [PHP]

我正在尋找通過單擊鏈接加載單頁記錄列表的記錄。

我有記錄的工作列表,點擊該鏈接時,它會將用戶的頁面,這個網址:

/view.php?v=1 (with 1 being the ID of the record I clicked on the menu) 

如何加載相關的記錄(一個「1 '作爲ID)在頁面上?它似乎很簡單,但我無法找到如何在任何地方做到這一點。

顯然我需要使用SQL語句從數據庫中獲取內容,但是我需要放什麼?喜歡的東西:

$sql = "SELECT * FROM Topics WHERE TopicID=v"; 
+2

這應該由許多不同的入門教程,PHP的覆蓋得到一個記錄值。基本上,你會從'$ _GET ['v']'得到查詢字符串的值,驗證該值(因爲它是用戶輸入並且不能被隱式信任),並將其用作SQL查詢中的參數像'mysqli'或'PDO')。 – David 2014-12-05 18:04:57

+0

正如@David所說,你需要查看'$ _GET'「超全局」這個數據。爲了安全起見,可能需要將您的值轉換爲整數。查看[一個例子](https://github.com/halfer/php-tutorial-project/blob/rebase4/view-post.php)瞭解頁面如何檢索值。 – halfer 2014-12-05 18:09:01

回答

1

使用URL's變量由$_GET

$topic_id = $_GET['v']; 

您可以查詢傳遞參數,而這只是傾銷變量:

$query = $PDO->prepare(SELECT * FROM Topics WHERE TopicID=:topic_id); 
$query->bindValue(':topic_id', $topic_id); 

這份文件將指導你。 http://php.net/manual/en/ref.pdo-mysql.php

+4

也許向新手開發人員提供SQL注入代碼不是最好的主意嗎? – David 2014-12-05 18:06:22

+0

我編輯了答案。謝謝你讓我出去。 – 2014-12-05 18:09:14

+1

第二行是一個簡單的查詢,需要保存在一個變量中,並輸入到數據庫調用中。也許值得注意的是你的回答是什麼是代碼和什麼是僞代碼? (現在你已經編輯了,你可以刪除裸露的查詢,因爲它很混亂)。 – halfer 2014-12-05 18:09:59

-2

因此,這將是你的PHP腳本:

// Establish your database connection, replace credentials with yours:  
$dbc = new PDO('mysql:host=' . MYSQL_HOST . ';dbname=' . DB_NAME, MYSQL_USER, MYSQL_PW, array(PDO::ATTR_PERSISTENT => true)); 

// Get the id from the URL: 
$id = filter_input(INPUT_GET, 'v'); 

// Set up the sql query: 
$q = "SELECT * FROM Topics WHERE TopicID = $id"; 

// Execute the query and get the result: 
$result = $dbc->query($q); 

// Fetch the only row for your result: 
$row = $result->fetch(); 

現在,你可以做你想做與記錄($行)什麼的。這是一個數組,所以,例如,如果你想獲得'日期'列,或者你有什麼,那就是$ row ['date']。我不知道主題表的結構如何,但是無論您在那裏有哪些列,那麼它只是$ row [''],這就是您獲得價值的地方。

另請注意,我沒有提供任何驗證支持。所以你必須自己驗證輸入。這段代碼是基本的,只是假設$ _GET變量中的數據是有效的。

/view.php?v=fuckyou不會工作,你會得到一個錯誤。

+0

''假設$ _GET變量中的數據是有效的'' - 這就是所謂的SQL注入。通常最好不要編寫SQL注入代碼。 – David 2014-12-05 18:34:46

+1

這不是一個家庭友好的網站,但我敢肯定,侵略性和濫用查詢字符串是不必要的。你會修改它嗎? – halfer 2014-12-05 18:59:58

-2

可以使用波紋管代碼從表

URL :- www.abc.com/view.php?v=1 // Your url  

$id = $_GET['v']; // get these value  

$conn = mysql_connect("localhost", "mysql_user", "mysql_password"); // connect the database with your credentials  

$sql = mysql_query("SELECT * FROM `Topics` where TopicID = $id limit 1 "); // sql query  

while ($row = mysql_fetch_assoc($sql)) {  
    echo $row["TopicID"];  
    echo $row["TopicName"];  
}  
+1

此代碼使用不推薦使用的MySQL庫,並具有SQL注入漏洞。 – David 2014-12-05 18:35:10

相關問題