php
1<?php 2$conf_date=''; // 参照用の日付 3try{ 4 $db= new PDO('mysql:dbname='. DB_NAME. ';host=' 5 . HOST_NAME, USER_NAME, PASS_NAME); 6 echo '接続完了'. "<br>"; 7} catch(PDOException $e){ 8 echo '接続失敗'. $e->getMessage(); 9} 10// 接続完了 11$table='SELECT*FROM'. TABLE_NAME; 12$sql=$db->query($table); 13var_dump($table); // string(n) "SELECT*FROM (データベース名)" 14var_dump($conf_date); // string(0) "" 15var_dump($sql); 16// object(PDOStatement)#4(1){["queryString"]=> string(n) 17// "SELECT*FROM (データベース名)} 18foreach($sql as $row){ 19 20 // debug 21 var_dump($row['date_time'],0,10); 22 // string(10) "2000-01-01" //(最初のうちはこの値) 23 var_dump($conf_date); 24 // string(10) "2000-01-01" //(最初のうちはこの値) 25 echo (substr($row['date_time'],0,10)=='2000-01-01'); 26 // (最初のうちは 1 をかえす) 27 echo ($conf_date=='2000-01-01'); 28 // (最初のうちは 1 かえす) 29 30 if (substr($row['date_time'],0,10)==$conf_date){ 31 echo 'Success!'. "<br>"; 32 } 33 else if (substr($row['date_time'],0,10)!=$conf_date){ 34 echo 'Failure' ."<br>"; 35 } 36 // 何故か、'Failure'をかえす 37 38 // debug 39 echo (substr($row['date_time'],0,10)==$conf_date); 40 // 確認してみたが、ここでブランク(空)をかえす 41 // 三段論法的にここは 1 を返すはずなのに、なぜか帰ってこない 42 43 $conf_date=substr($row['date_time'],0,10); 44 } 45?>
データの内容は、
'date_time' 'value'
2000-01-01 00:00:00 60
2000-01-01 00:05:00 50
2000-01-01 00:10:00 65
.
2000-01-01 23:55:00 54
2000-01-02 00:00:00 49
.
2000-01-31 23:55:00 55
やりたいこととして、取得した'date_time'の値から日付部分を抜き取って、一つ前のデータと同じならば、'Success!'を表示するようにしたい。
仕様なのでしょうか。なにが間違っているのか、分からず、困っています。助言をお願いします。