2016-11-15 64 views
2

我遇到的問題如下:PHP和MySQL - 更新後顯示結果

我可以保存並檢索信息後保存,但我不知道如何自動執行一旦記錄是保存/更新。

要更新我使用:

$result = mysql_query("UPDATE loan SET loana='$loann', dater='$dater', apaid='$apaid' WHERE id=$id"); 

一旦救我可以加載主頁機智的結果,並單擊它看起來像這樣一個鏈接,它會顯示所有信息的:

echo "<td><a href=\"full_loan_details.php?id=$res[id]\" target=\"_blank\" alt=\"Print loan details\" title=\"Print loan details\">".$res['name']."&nbsp;".$res['surname']."</a></td>"; 

...但我無法在記錄保存時自動執行此操作。任何幫助是極大的讚賞。

+1

您可以使用['header'](http://php.net/manual/en/function.header.php)將用戶重定向到頁面。 – secelite

+0

在更新記錄的同一動作中,您可以在更新後立即運行選擇查詢。 – Loko

+1

***請[停止使用'mysql_ *'功能](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)。*** [這些擴展名](http://php.net/manual/en/migration70.removed-exts-sapis.php)已在PHP 7中刪除。瞭解[prepared](http://en.wikipedia.org/wiki/Prepared_statement )[PDO]聲明(http://php.net/manual/en/pdo.prepared-statements.php)和[MySQLi](http://php.net/manual/en/mysqli.quickstart.prepared- statement.php),並考慮使用PDO,[這真的很簡單](http://jayblanchard.net/demystifying_php_pdo.html)。 –

回答

0

你可以使用header

header("Location: /full_loan_details.php?id=$res[id]"); 

如前所述腳本很容易受到注入攻擊。您應該使用PDO's

<?php 

define("DB_DSN", "mysql:host=localhost;dbname=foo"); 
define("DB_USERNAME", "root"); 
define("DB_PASSWORD", "password"); 

// define sql 
$sSQL = "UPDATE loan SET loana=:loana, dater=:dater, apaid=:apaid WHERE id=:id"; 

// create an instance of the connection 
$conn = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD); 

// prepare 
$st = $conn->prepare($sSQL); 

// securely bind any user input in the query 
$st->bindValue(":loana", $loana, PDO::PARAM_STR); 
$st->bindValue(":dater", $dater, PDO::PARAM_STR); 
$st->bindValue(":apaid", $apaid, PDO::PARAM_STR); 
$st->bindValue(":id", $id, PDO::PARAM_INT); 

// execute the connection 
if($st->execute()){ 
    header("Location: /full_loan_details.php?id=".$id); 
}else{ 
    // didnt execute 
} 

你可以做一個SELECT確認更改和或得到一個值。與上述方法相同,但需要以下內容來讀取它;

要提取單列使用If,或者如果多於1行使用while

if($row = $st->fetch()){ 
    header("Location: /full_loan_details.php?id=".$row['id']); 
} 

注意:這可能是不安全的用戶重定向到基於從DB unsanatised數據的位置。即使你已經用上面的方法插入它。確保您正確地清潔所有輸出。

+0

我試過完全一樣的東西,但是失敗了,我以爲是因爲id沒有通過。因此我的問題。 – Cluster

+0

已更新我的答案。如果您仍有問題,請檢查您是否有$ id中的值。 – atoms