なんとか、できました!!ふううーー。。。
*************************************************
「php+SQLDBで連続無事故日数カウントWebを作ってみた」*************************************************
Web_URL
http://dasudasu.sakura.ne.jp/tbl_20170621/20170621_list.php
20170621_form.html
20170622_og_list.php
20170621_trDB.php
20170621_view.php
20170621_updateform.php
DB名:dasudasu_tbl
テーブル名:tbl_t
項目
tr_Num id
50 hakkaku_date
tr_today
tr_service service_name
tr_contents naiyou
d_bit
INSERT INTO tbl_t (tr_date, tr_service, tr_contents) VALUES ( now(), ‘service_name’, ‘naiyou’ )
で今日の日付が入る!!!OK
select max(tr_date) from tbl_t
select min(tr_date) from tbl_t
もOK
select * from tbl_t WHERE tr_date = (select max(tr_date) from tbl_t)
もOK
UPDATE tbl_t SET tr_today = (now()) WHERE tr_date = “2017-06-10”
もOK
SELECT DATEDIFF(now(), (select max(tr_date) from tbl_t)) FROM tbl_t;
もOK
ちなみに、ここ分かりやすい、php PDO Mysqlでgoogleした!
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10131010895
*************************************************
以下、ソース・・・・・
<?php
session_start();
?>
<HTML>
<HEAD>
<TITLE>PHPのテスト</TITLE>
</HEAD>
<BODY>
<HR size=”1″ noshade>
<font size=6 >
ボイスSO<連続無事故日数管理Web>
</font>
<HR size=”1″ noshade>
<BR>
[ <a href=”20170621_form.html”>入れたくないけど・・「SOトラブルの新規登録」はここから</a>]
<BR>
<BR>
<FORM name=”form1″ method=”post” action=”20170622_og_list.php”>
サービス絞り込み(未完成):<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=”絞り込む”>
<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 OR tr_contents like :tr_contents 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 ))”;
$result = $pdo->query($sql2);
While($row = $result->fetch()) {
print “<font color=’blue’ size=5 >” . $search_key1 . “の連続無事故日数は、” . $row[0] . “日です。<BR>”;
}
// 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);
// 無事故日数を表示します(ここ)***************
$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> </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>
</TR>
<?php
}
?>
</TBODY></TABLE>
<?php
}
?>
</BODY>
<!–
<br />
<a href=”./20170621_list.php/”>戻る</a>
–>
</HTML>