2016-11-15 9 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

レコードを更新するのと同じアクションで、更新後にselectクエリを実行することができます。 – 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- statements.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