connet.lolipop.jp
削除処理
「全データ」ページの「削除」(リンク)からレコードの削除を実行。
削除処理後は全データを再表示。

delete.php
<?php
/**
 * 削除処理
 */

// データベースに接続
require_once('imageDB.php');
$pdo = executeQuery();
	
// 削除するid番号をGETメソットで受信
if(isset($_GET['id'])){	
	$personid = $_GET['id'];
}

// レコード削除-DELETEステートメント
$sql = 'DELETE FROM image_table WHERE id=:id';
try {
	// エラー処理モード設定
	$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
	// トランザクションの開始
	$pdo->beginTransaction();
	$stmt= $pdo->prepare($sql);
	$stmt->bindParam( ':id',$personid,PDO::PARAM_INT);
	$stmt->execute();
	$pdo->commit();
} catch (PDOException $e) {
	$pdo->rollback(); // エラーなら実行しない
  print "削除に失敗しました。" . $e->getMessage();
}	
$pdo = null;
// 全データ再表示
require_once("show_All.php");
?>
「更新」フォームを作成
「全データ」ページの「更新」(リンク)操作により、更新データをフォームに読み込む。
「画像回転」操作による画像の表示には、非同期通信を使う。

update.php
<?php
/**
 * 更新フォーム作成
 */

// セッション開始 
session_start();

// データベースに接続
require_once('imageDB.php');
$pdo = executeQuery();

// 更新のid番号をGETメソットで受信
if(isset($_GET['id'])) {	
  $personId = $_GET['id'];
  
  // 更新レコード取得-SELECTステートメント
  $sql = 'SELECT * FROM image_table WHERE id = :id';
  $row = ''; $stmt = null;
  try {
    // エラー処理モード設定
    $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    $stmt = $pdo->prepare($sql);
    $stmt->bindValue(':id', $personId, PDO::PARAM_INT);
    $stmt->execute();
    $row = $stmt->fetch(PDO::FETCH_ASSOC); // レコード一行取得(カラムを検索)
    $person_id = $row['id'];
    $upimgname = $row['imgName'];
    $_SESSION['upimage_type'] = $row['imgType']; // jpeg[,png,gif]	
    $_SESSION['upimgcontent'] = $row['imgContent'];
    $comment = $row['imgComment'];
    $created = $row['created_at'];
    $updated = $row['updated_at'];
  } catch (PDOException $e) {
      print 'DBエラー'. $e->getMessage();
  }
} else {
    return;
}	
$pdo = null;
?>
<!--// HTML -->
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>画像データベース:更新フォーム</title>
<script src="js/update.js"></script>
<script src="js/uprotate.js"></script>
</head>
<body style="background:#edf5ff">
<h1>更新</h1>
<h3 id="reaction">  </h3>
	<ul style="position:relative;left:-40px;display:flex;list-style:none;">
    <li>
    	<form id="update_form">
        <table>
        <tr><td>番号  :</td><td><input type="text" name="id" value="<?= $person_id ?>" readonly style="background:#eaeaea;"></td></tr>
        <tr><td>画像名 :</td><td><input type="text" name="imgname" value="<?= $upimgname ?>" readonly style="background:#eaeaea;"></td></tr>
        <tr valign="top"><td>コメント:</td><td><textarea name='comment' cols="30" rows="3"><?= $comment ?></textarea></td></tr>
        <tr><td>登録日時:</td><td><input type='text' value='<?= $created ?>' readonly style="background:#eaeaea;"></td></tr>
        <tr><td>更新日時:</td><td><input type='text' value='<?= $updated ?>' readonly style="background:#eaeaea;"></td></tr>
        </table>
    	</form>
    	<br />
    	<a href="" onclick="javascript:updateform('update_form'); return false;">更新</a>    
    	<a href="show_All.php">戻る</a>
    	<br /></br /></br />
    	<a href="show_All.php">全データ表示</a><br />
    	<a href="insert.php">登録</a><br />
    	<a href="index.php">トップページ</a>
    </li>
    <li>    </li>
    <!--// 画像回転フォーム-->
    <li>				
    	<form id="uprotate_form">			
        <span>画像回転:</span>
        <span><input type="button" name='l_angle' value="左へ90度回転" onclick="upimgrotate('uprotate_form','l_rotate')" title="画像を左へ90度回転します。"></span>
        <span><input type="button" name='r_angle' value="右へ90度回転" onclick="upimgrotate('uprotate_form','r_rotate')" title="画像を右へ90度回転します。"></span>
    	</form>
    	<!--// 最初はrequire関数で、以後は非同期通信経由で画像表示。-->
    	<div id="uprotateimageshow"><?php require_once("upimagerotate.php"); ?></div>
    	<div><?php print $upimgname; ?></div>
    </li>
	</ul>
</body>
</html>
「更新」ページに表示する画像データを作成
画像及び回転角度のデータは非同期通信経由で受け取る。

upimagerotate.php
<?php
/**
 * 画像回転操作による画像出力/表示
 */

// セッション開始 
@session_start();
   
// 回転角度の初期値
$uprotate = 0;
// 回転角度をPOSTメソットで受け取る
if(isset($_POST['uprotate'])){
	$uprotate = $_POST['uprotate'];
}

// 画像ストリームから新規イメージを作成
$upimgcontent = imagecreatefromstring($_SESSION['upimgcontent']);
// 画像を回転
$uprotateimgcontent = imagerotate($upimgcontent, $uprotate, 0);

// バッファリング開始
ob_start();
if ($_SESSION['upimage_type'] == 'image/jpeg') {	
  // 画像ストリームを出力
  imagejpeg($uprotateimgcontent, null, 100);
} elseif ($_SESSION['upimage_type'] == 'image/png') {
    imagepng($uprotateimgcontent, null, 9);
} elseif ($_SESSION['upimage_type'] == 'image/gif') {
    imagegif($uprotateimgcontent, null);
}
// バッファ内容を取得してセッション変数に代入
$_SESSION['upimgcontent'] = ob_get_clean();
// メモリを開放
imagedestroy($upimgcontent); 
imagedestroy($uprotateimgcontent);
?>
<!--// HTML -->
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>画像データベース:更新画像回転表示</title>
</head>
<body style="background:#edf5ff">
<!--// date関数のデータを使って、サーバーから最新の画像を取得/表示。-->
<div><img src="uprotateimageshow.php?date=<?php print date("YmdHis"); ?>" alt="upimage" /></div>
</body>
</html>
「更新」ページに画像を表示
更新の画像表示と「画像回転」操作による画像表示。

uprotateimageshow.php
<?php
/**
 * オリジナル画像表示 
 */

// セッション開始
session_start();

header('content-type: '.$_SESSION['upimage_type']);
print $_SESSION['upimgcontent'];
exit;
?>
更新処理
「更新」ページから非同期通信経由でデータを受け取り、更新を実行。

update2.php
<?php
/**
 * 更新処理
 */
 
// セッション開始 
session_start();

// データベースに接続
require_once('imageDB.php');
$pdo = executeQuery();

// id番号をPOSTで受信 
if(isset($_POST['id'])){	
	$personid = $_POST['id'];
}
// コメントをPOSTで受信
if(isset($_POST['comment'])){	
	$comment = htmlspecialchars($_POST['comment'], ENT_QUOTES);
}

// タイムゾーンを設定
date_default_timezone_set('Asia/Tokyo');
// 24時表示
$updated = date("Y-m-d G:i:s");

$result = '';
// 更新-UPDATEステートメント
$sql = 'UPDATE image_table SET imgContent=:imgContent, imgComment=:imgComment, updated_at=:updated_at WHERE id=:id';
try {
  // エラー処理モード設定
  $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
  // トランザクションの開始
  $pdo->beginTransaction();
  $stmt = $pdo->prepare($sql);
  $stmt->bindParam(':id',$personid,PDO::PARAM_INT);
  $stmt->bindParam(':imgContent',$_SESSION['upimgcontent'],PDO::PARAM_STR); // セッション変数から更新
  $stmt->bindParam(':imgComment',$comment,PDO::PARAM_STR);
  $stmt->bindParam(':updated_at',$updated,PDO::PARAM_STR);
  $stmt->execute();
  $pdo->commit();
  print $result = '<span style="color:#0000FF">更新しました。</span>';
} catch (PDOException $e) {
    $pdo->rollback(); // エラーなら何もしないで戻る
    print '更新エラー'.$e->getMessage();
}
$pdo = null;
?>
Search
Google


↟ このページの先頭へ