286_<無事故管理Web>過去最大日数テーブル_OK!★

max_infというテーブルを作成し、最大値を格納するようにしました。
これで年間最大で何日まで行ったか?履歴がわかります。
うまく動くんかな????
まあ様子見。。。。
================================
<★1>
// 過去最大日数を表示します20170702(ここ)個別***********↓上
    $sql3 = “SELECT * from max_inf WHERE max_service like $search_key1 “;
$result3 = $pdo->query($sql3);
     While($row3 = $result3->fetch()) {
print “<font color=’black’ size=4 >過去最大値: “;
//print “<font color=’blue’ size=4 >” .$search_key1.”=”. $row3[3].” 日!”.$row3[4].”<BR>”;
print “<font color=’blue’ size=4 >” .$search_key1.”=”. $row3[3].” 日! “;
print “<font color=’black’ size=4 >(発覚日: “;
print “<font color=’blue’ size=4 >” .$row3[4].”の案件)<BR>”;
}
print “<BR><BR>”;
// 過去最大日数を表示します20170702(ここ)個別***********↑下
<★2>
// 過去最大テーブルへのカウントupdate 20170702*****↓上
    $sql2 = “SELECT DATEDIFF(now(), (select max(tr_date) from tbl_t WHERE tr_service like $search_key1 ))”;
・・・・

$sql22 = “SELECT max(tr_date) from tbl_t WHERE tr_service like $search_key1 “;

$result22 = $pdo->query($sql22);
While($row22 = $result22->fetch()) {
//print “<font color=’blue’ size=5 >” . $search_key1 . “の*******数は、” . $row[0] . “日です。<BR>”;
}

// 過去最大テーブルへのカウントupdate 20170702*****↓中
$sql31 = “SELECT max_service,max_date from max_inf WHERE max_service like $search_key1”;
$result31 = $pdo->query($sql31);

// UPDATE文を変数に格納
$sql = “UPDATE cities SET name = :name WHERE id = :id”;
$sqlu = “UPDATE  max_inf
SET
max_date   = :r,
hakkaku_date  = :r22
WHERE max_service = $search_key1”;

// 更新する値と該当のIDは空のまま、SQL実行の準備をする
$stmhu = $pdo->prepare($sqlu);

// 更新する値と該当のIDを配列に格納する
$params = array(‘:r’ => $r, ‘:r22’ => $r22);

// 更新する値と該当のIDが入った変数をexecuteにセットしてSQLを実行
$stmhu->execute($params);

// 更新完了のメッセージ
echo ‘更新完了しました’;

  }
// 過去最大テーブルへのカウントupdate 20170702*****↑下
<★3>
// 過去最大日数を表示します20170702(ここ)全体***********↓上
    $sql3 = “SELECT max_service,max_date from max_inf “;
$result3 = $pdo->query($sql3);
     While($row3 = $result3->fetch()) {
print “<font color=’black’ size=4 >過去最大値: “;
print “<font color=’blue’ size=4 >” .$row3[0].” = “. $row3[1].” 日 <BR> “;
}
     print “<BR><BR>”;
// 過去最大日数を表示します20170702(ここ)全体***********↑下
/////////以下メモ(生コード)//////////
<?php
session_start();
?>
<HTML>
<HEAD>
<TITLE>PHP+MySQL:連続無事故日数管理Web</TITLE>
</HEAD>
<BODY>
<HR size=”1″ noshade>
<font size=6 >
ボイスSO<連続無事故日数管理Web>
<BR>
on sakuravps2 !!
<BR>
</font>
<HR size=”1″ noshade>
<BR>
<font color=’green’ size=4 >
[ <a href=”20170621_form.html”>入れたくないけど・・「SOトラブルの新規登録」はここから</a>]
</font>
<BR>
<BR>
<FORM name=”form1″ method=”post” action=”20170622_og_d_list.php”>
<font color=’green’ size=5 >
サービス絞り込み:<select name=”search_key”>
<option value=””selected>全部(高度CC/ひかり/IPVoice/光コラボ)</option>
<option value=”高度CC”>高度CC</option>
<option value=”ひかりライン”>ひかりライン</option>
<option value=”IPVoice”>IPVoice</option>
<option value=”光コラボ”>光コラボ</option>
</select>
<INPUT type=”submit” value=”絞り込む”>
</font>
<BR>
<BR>
</FORM>
<?php
require_once(“20170621_trDB.php”);
$pdo = db_connect();
// 削除処理
if(isset($_GET[‘action’]) && $_GET[‘action’] == ‘delete’ && $_GET[‘id’] > 0 ){
try {
$pdo->beginTransaction();
$id = $_GET[‘id’];
$sql = “DELETE FROM tbl_t WHERE tr_Num = :id”;
$stmh = $pdo->prepare($sql);
$stmh->bindValue(‘:id’, $id, PDO::PARAM_INT );
$stmh->execute();
$pdo->commit();
print “データを” . $stmh->rowCount() . “件、削除しました。<br>”;
    } catch (PDOException $Exception) {
$pdo->rollBack();
print “エラー:” . $Exception->getMessage();
}
}
// 挿入処理
if(isset($_POST[‘action’]) && $_POST[‘action’] == ‘insert’){
try {
$pdo->beginTransaction();
$sql = “INSERT  INTO tbl_t (tr_date, tr_service, tr_contents) VALUES ( :hakkaku_date, :service_name, :naiyou )”;
$stmh = $pdo->prepare($sql);
$stmh->bindValue(‘:tr_date’,  $_POST[‘hakkaku_date’],  PDO::PARAM_STR );
$stmh->bindValue(‘:tr_service’, $_POST[‘service_name’], PDO::PARAM_STR );
$stmh->bindValue(‘:tr_contents’,        $_POST[‘naiyou’],        PDO::PARAM_STR );
$stmh->execute();
$pdo->commit();
print “データを” . $stmh->rowCount() . “件、挿入しました。<br>”;
    } catch (PDOException $Exception) {
$pdo->rollBack();
print “エラー:” . $Exception->getMessage();
}

}

// 更新処理
if(isset($_POST[‘action’]) && $_POST[‘action’] == ‘update’){
// セッション変数よりidを受け取ります
$id = $_SESSION[‘id’];
    try {
$pdo->beginTransaction();
$sql = “UPDATE  tbl_t
SET
                  tr_service   = :service_name,
tr_contents  = :naiyou
WHERE tr_Num = :id”;
$stmh = $pdo->prepare($sql);
//print $sql;  //これはチェックのために追加(2015/09/05)
//print $id;  //これはチェックのために追加(2015/09/05)
      $stmh->bindValue(‘:service_name’, $_POST[‘service_name’],  PDO::PARAM_STR );
$stmh->bindValue(‘:naiyou’,       $_POST[‘naiyou’],        PDO::PARAM_STR );
$stmh->bindValue(‘:id’,           $id,                     PDO::PARAM_INT );
//print $sql;  //これはチェックのために追加(2015/09/05)
      $stmh->execute();
$pdo->commit();
//print “データを” . $stmh->rowCount() . “件、更新しました。<br>”;
    } catch (PDOException $Exception) {
      $pdo->rollBack();
print “エラー:” . $Exception->getMessage();
}
// 使用したセッション変数を削除する
unset($_SESSION[‘id’]);
}
// 検索および現在の全データを表示します
try {
if(isset($_POST[‘search_key’]) && $_POST[‘search_key’] != “”){
$search_key = ‘%’ . $_POST[‘search_key’] . ‘%’;
$search_key1 ='”‘ . $_POST[‘search_key’] . ‘”‘;
    $sql= “SELECT * FROM tbl_t WHERE tr_service like :tr_service order by tr_date DESC”;
$stmh = $pdo->prepare($sql);
    $sql2 = “SELECT DATEDIFF(now(), (select max(tr_date) from tbl_t WHERE tr_service like $search_key1 ))”;
$sql22 = “SELECT max(tr_date) from tbl_t WHERE tr_service like $search_key1 “;
$result22 = $pdo->query($sql22);
While($row22 = $result22->fetch()) {
//     print “<font color=’blue’ size=5 >” . $search_key1 . “のupdate日付は、” . $row22[0] . “日です。<BR>”;
     $r22 = $row22[0];
}
// 過去最大日数を表示します20170702(ここ)個別***********
    $sql3 = “SELECT * from max_inf WHERE max_service like $search_key1 “;
$result3 = $pdo->query($sql3);
     While($row3 = $result3->fetch()) {
print “<font color=’black’ size=4 >過去最大値: “;
print “<font color=’blue’ size=4 >” .$search_key1.”=”. $row3[3].” 日! “;
print “<font color=’black’ size=4 >(発覚日: “;
print “<font color=’blue’ size=4 >” .$row3[4].”の案件)<BR>”;
}
print “<BR><BR>”;
// 過去最大日数を表示します20170702(ここ)個別***********
    $result = $pdo->query($sql2);
     While($row = $result->fetch()) {
print “<font color=’blue’ size=5 >” . $search_key1 . “の連続無事故日数は、” . $row[0] . “日です。<BR>”;
$r = $row[0];
}
// 過去最大テーブルへのカウントupdate 20170702*****↓中
$sql31 = “SELECT max_service,max_date from max_inf WHERE max_service like $search_key1”;
$result31 = $pdo->query($sql31);
     While($row31 = $result31->fetch()) {
$r31 = $row31[1];
}
//        print “<font color=’green’ size=4 >” .$search_key1.”===search_key1<BR>”;
//        print “<font color=’green’ size=4 >” .$r.”===new value<BR>”;
//        print “<font color=’green’ size=4 >” .$r31.”===past max value<BR>”;
//        print “<font color=’green’ size=4 >” .$r22.”===new date value<BR>”;
if($r>$r31){
// UPDATE文を変数に格納
$sqlu = “UPDATE  max_inf
SET
max_date   = :r,
hakkaku_date  = :r22
WHERE max_service = $search_key1”;
    // 更新する値と該当のIDは空のまま、SQL実行の準備をする
$stmhu = $pdo->prepare($sqlu);
    // 更新する値と該当のIDを配列に格納する
$params = array(‘:r’ => $r, ‘:r22’ => $r22);
    // 更新する値と該当のIDが入った変数をexecuteにセットしてSQLを実行
$stmhu->execute($params);
    // 更新完了のメッセージ
echo ‘★最新日数に更新完了しました’;
print “<BR>”;
///  print “<font color=’green’ size=4 >” .$sqlu.”===MySQL update command !!!!!<BR>”;
}else{
///          print “<font color=’green’ size=4 >”. “do not care !!!!!!<BR>”;
}
// 過去最大テーブルへのカウントupdate 20170702*****↑下
//    print “search_key1 =  ” . $search_key1;  //これはチェックのために追加(2015/09/05)
    $stmh->bindValue(‘:tr_service’,  $search_key, PDO::PARAM_STR );
//    $stmh->bindValue(‘:tr_contents’, $search_key, PDO::PARAM_STR );
    $stmh->execute();
  }else{
$sql= “SELECT * FROM tbl_t order by tr_date DESC “;
$stmh = $pdo->query($sql);
// 過去最大日数を表示します20170702(ここ)全体***********
    $sql3 = “SELECT max_service,max_date from max_inf “;
$result3 = $pdo->query($sql3);
     While($row3 = $result3->fetch()) {
print “<font color=’black’ size=4 >過去最大値: “;
print “<font color=’blue’ size=4 >” .$row3[0].” = “. $row3[1].” 日 <BR> “;
}
     print “<BR><BR>”;
// 過去最大日数を表示します20170702(ここ)全体***********
// 無事故日数を表示します(ここ)***************
     $str = $pdo->query(“SELECT DATEDIFF(now(), (select max(tr_date) from tbl_t)) FROM tbl_t “);
While($row = $str->fetch()) {
$aaa = $row[‘DATEDIFF(now(), (select max(tr_date) from tbl_t))’];
     }
    print “<font color=’red’ size=5 >今日までのところ、全体では<BR>”;
print “<font color=’red’ size=6 >連続無事故日数は【” . $aaa . “】日です!<BR>”;
// 無事故日数を表示します(ここ)***************
  }
    $count = $stmh->rowCount();
print “<font color=’blue’ size=4 >最近のSOトラブル件数は、下記” . $count . “件です。<BR>”;
} catch (PDOException $Exception) {
print “エラー:” . $Exception->getMessage();
}
if($count < 1){
print “検索結果がありません。<BR>”;
}else{
?>
<TABLE width=”600″ border=”1″  cellspacing=”0″ cellpadding=”8″>
<TBODY>
<TR><TH>発覚日</TH><TH>サービス</TH><TH>トラブル概要</TH><TH>&nbsp;</TH><TH>&nbsp;</TH></TR>
<?php
while ($row = $stmh->fetch(PDO::FETCH_ASSOC)) {
?>
<TR>
<TD><?=htmlspecialchars($row[‘tr_date’])?></TD>
<TD><?=htmlspecialchars($row[‘tr_service’])?></TD>
<TD align=”center”><?=htmlspecialchars($row[‘tr_contents’])?></TD>
<TD align=”center”><a href=20170621_updateform.php?id=<?=htmlspecialchars($row[‘tr_Num’])?>>更新</a></TD>
<TD align=”center”><a href=20170622_og_d_list.php?action=delete&id=<?=htmlspecialchars($row[‘tr_Num’])?>>削除</a></TD>
</TR>
<?php
}
?>
</TBODY></TABLE>
<?php
}
?>
</BODY>
<!–
<br />
<a href=”./20170622_og_d_list.php/”>戻る</a>
–>
</HTML>