2016-08-17 2 views
-2

私は選択ページを持っています。各レコードには、レコードを編集/削除するための対応するリンクがあります。このページでは、レコードを挿入するための別のページを開く。 挿入、更新、削除の成功メッセージを印刷するにはどうすればよいですか?

私は

は今、私は成功を表示したいページを選択し、特定のレコード、レコードを削除し、にユーザーをリダイレクトしが実行されdelete.phpのために削除リンクをクリックしてください

選択ページ(表示されているレコードのすぐ下)のメッセージ(削除)。表示されたレコードのすぐ下に成功メッセージを配置する方法はありますか?

は、私は、この値を渡すん.Howページを選択しmysqli_affected_rowsを使用してにこの値を渡すべきか?

マイdelete.phpファイルは次のようになります。

include "connection.php"; 
$sql = "DELETE FROM `student` 
WHERE `id` = '$_GET[del_id]'"; 
mysqli_query($conn, $sql) or die ("Delete Error"); 
Header("Location: select.php"); 
+0

ヘッダーを削除し、echoとallを 'if {}/else {}'に追加します。確かにあなたは私たちの助けなしにそれをした可能性があります –

+0

削除されたレコードまたは単に単純なメッセージ "レコード削除"に基づいて成功メッセージ? –

答えて

3

簡単な解決策は、セッションを使用します。これにより、同じユーザーが別のページを読み込んだときに取得できるデータを格納できます。以下の例では、任意のページに続いて、このアプローチ

delete.php

<?php 
//session must be started before anything is echoed to the browser 
if(session_status()===PHP_SESSION_NONE) session_start(); 
... 
mysqli_query($conn, $sql) or die ("Delete Error"); 
$_SESSION['message'] = "Record #$_GET[del_id] was successfully deleted"; 
Header("Location: select.php"); 

を使用して、あなたが表示するメッセージがあるかどうかを確認することができます。その場合は、メッセージストアを取得してメッセージストアをクリアします(ユーザーが新しいページを開くたびに同じメッセージが表示されないようにします)。

select.php

<?php 
//session must be started before anything is echoed to the browser 
if(session_status()===PHP_SESSION_NONE) session_start(); 
... 
//capture the message if it exists, or set $msg to null 
if(!empty($_SESSION['message'])){ 
    $msg = $_SESSION['message']; 
    unset($_SESSION['message']); //delete the message 
}else{$msg = null;} 

今、あなたはどこにでもそれがnullでない場合は、HTMLにしたい$msgを表示することができます。あなたのコメントを受けて

セッションがすべて出力前に開始しなければならない理由を尋ねた:

を出力がブラウザに行く前に、HTTPレスポンスヘッダに影響を与え、任意の設定が来なければならないHTTPプロトコルでは、ヘッダが来るので、内容の前にセッションはデフォルトでヘッダーに依存します(Cookieヘッダーが正確です)。

From the manual:は、クッキーベースのセッションを使用するには、のsession_start()は、ブラウザに何かをoutputing 前に呼び出す必要があります。

+0

その完璧な... thks –

+1

@SabyasachiGuptaよろしくお願いします。 – BeetleJuice

+0

疑問を明確にしたい:あなたのコードで、「何かがブラウザにエコーされる前にセッションを開始しなければならない」と記述した。なぜあなたはそれをしたいのですか? –

関連する問題