2017-03-02 8 views
1

idと日付が一致する行数を取得しようとしています。私はそれが
mysqlでwheatherの2つの日付が等しいかどうかを確認する

SELECT COUNT(*) FROM table WHERE Id = '587762' && RequestDate = '2017-03-10' 

正常に動作します。しかし、PHPで実行するとき、それは、所望の結果を返さないMySQLでこのクエリを実行しています。これは私のPHPファイル

<?php 
    $pdo = new PDO('mysql:host=localhost;dbname=personDB','root',''); 
    if($_SERVER['REQUEST_METHOD'] == 'GET'){ 
     $Id = $_GET['ID']; 
     $date = date("Y-m-d", strtotime($_GET['date'])); 
     $row_count = $pdo->query("SELECT * FROM table WHERE Id = '$Id' AND RequestDate = '$date'")->fetchColumn(); 
     if($row_count > 0){ 
      $response = false; 
      header('Content-Type: application/json'); 
      echo json_encode($response); 
     } 
     else{ 
      $response = true; 
      header('Content-Type: application/json'); 
      echo json_encode($response); 
     } 
    } 
    ?> 

RequestDate時間がないコンポーネントを持っていないです。私は郵便配達所でそれをチェックし、すでに存在する値を与えることは偽を返すべきですが、それは常に真実に戻ります。

+0

なぜ行を返すときに '$ response = false'を設定しますか? –

+0

'$ _GET ['date']'の値は何ですか? – JustBaron

+0

@GordonLinoff同じIDと日付の値がある場合には、他のものをやりたい –

答えて

0

を行のうちクエリの結果です。これを試してください。

$result = $pdo->query($sql); 
$row_count = $result->fetchColumn(); 

fetchColumn()関数は、結果の最初の行の最初の列を取得します。

+0

私は数を使用しました –

+0

はい、あなたのクエリで 'count(*)'を使用しましたが、それはクエリの結果が 'count(*)'に等しいことを意味しません。あなたのクエリが 'SELECT COUNT(*)、somethingElse FROM table'だったら? –

+0

私は、結果の最初の行の最初の列を望んでいません。私は合計の行数をしたい –

1

私は、日付

を入力する文字列を変換する代わりに、型date.use strtotime()の種類の文字列を使用していると思う。この試す:変数$row_countは金額が含まれていない

$date = strtotime($_GET['date']); 
+0

まだ得られていない –

+0

@lukeデータベースのレコードはどのように見えるのですか? '$ formatted = date( 'Ymd H:i:s'、$ date)'のような構文を使って '$ date'をフォーマットしようとしますが、データベースのフォーマットにフォーマットしてください。 – Nicolas

+0

YY-MM-DDフォーマット –

関連する問題