3

テーブルからレコードを削除するために、この関数を作成しました。削除操作が完了すると、ページにはすべてのデータ (削除されたものを含む) が表示されますが、行を削除した後に結果を表示するには、ページを更新または再読み込みする必要があります。次のコードでどのように行うことができますか? 事前にサンクス!!

            public function deletedata(){

        if(isset($_GET['del_id'])){

            $delete_id = $_GET['del_id'];

            $query ="DELETE FROM tbl_data WHERE project_id ='".$delete_id."' ";

            $this->databaseObject->getConnection()->query($query);
    }
4

2 に答える 2

2

通常、このheader関数を使用してページをリロードします。

このようなものが動作するはずです:header('Location: '.$_SERVER['REQUEST_URI']);

http://php.net/manual/en/function.header.php

あるいは、コードの構造によっては、レコードを取得するコードの前に単純に削除コードを呼び出すこともできます。そうすれば、ページをリロードする必要がなくなります。

于 2013-01-16T01:14:25.013 に答える
1

ローレンセックの代替案で述べたように、おそらくページをリロードする必要はありません。HTML をレンダリングする前に、必要なレコードの削除を実行するだけです。

<?php

$delete_id=isset($_GET['del_id'])&&is_numeric($_GET['del_id'])?$_GET['del_id']:false;
if ($delete_id) {
  $query ="DELETE FROM tbl_data WHERE project_id ='".$delete_id."' ";
  $this->databaseObject->getConnection()->query($query);
}
$query ="SELECT * FROM tbl_data WHERE 1;";
$this->databaseObject->getConnection()->query($query);

?>
<html>

// some php/html to loop through the query and display records

</html>

これは、ID が数値であることを前提としています。そうでない場合は、変数をデータベースに導入する前にチェック/エスケープすることを強くお勧めします。

于 2013-01-16T01:18:32.063 に答える