2017-01-24 6 views
-1

これを行うのに問題があります。ここにいくつかの投稿を行ってきましたが、私はphpやmysqlやpdoでうまくいかないため、何が起こっているのか理解できませんでした。PDOはUNIXのタイムスタンプデータベースの特定の日付に基づいて結果を取得します

私は何をしようとしていることである:UNIXタイムスタンプを使用している24-01-2017 2)しかし残念ながら、私のデータベース:

1)私は、特定の日付に基づいてカウント数を、例えば取得したいです私は変換する必要があります 3)上記の2つの要件は、1 SQL文で記述することはできますか?

現在、私のコードは次のようである:

$sqllastplay = "SELECT DISTINCT FROM_UNIXTIME(user_lastplayed,'%D, %M, %Y') AS day, count(*) as numberOfVisits FROM users GROUP BY day ORDER BY user_lastplayed"; 
    $querylastplay = $db->prepare($sqllastplay); 
    $querylastplay->execute(); 
    $lastplay = $querylastplay->fetchColumn(); 

<p><label>Last Play Date: </label><strong><?php echo $lastplay ?></strong></p> 

私はもう継続するのか分かりません。

あなたが私にこれを助けてくれることを願っています。

ありがとうございました!

+0

削除 'DISTINCT'、あなたはすでに良いかもしれない、あなたはすでに)それほど明瞭が必要とされていないし、あなたの結果 –

+0

fetchColumn(めちゃくちゃにされるかもしれない日に基づいてグループ化しているだけでなく –

+0

こここんにちはハンカチPankyは不向きですそれで、私が望む特定の日付を入れるためには、何を変える必要がありますか? あなたの常識は、代わりにrowCount()に変更するのですか? – Dr3am3rz

答えて

0

クエリを書きましたが、少し変更するだけで必要な出力が得られます。

"SELECT FROM_UNIXTIME(user_lastplayed,'%D, %M, %Y') AS day, count(*) as numberOfVisits FROM users GROUP BY user_lastplayed ORDER BY day"; 
0

私はちょうど別の方法ラウンドを持っていると思います。

ありがとうございました!

私の質問にも投票した方に感謝します。あなたはとても役に立ちます。

$start_lastplay = mktime(0, 0, 0, 1, 20, 2017); 
    $end_lastplay = mktime(23, 59, 59, 1, 20, 2017); 
    $lastplay = "SELECT * FROM users WHERE user_lastplayed BETWEEN :start_date AND :end_date"; 
    $lastplayquery = $db->prepare($lastplay); 
    $lastplayquery->bindParam(':start_date', $start_lastplay, PDO::PARAM_STR); 
    $lastplayquery->bindParam(':end_date', $end_lastplay, PDO::PARAM_STR); 
    $lastplayquery->execute(); 
    $lastplay = $lastplayquery->rowCount(); 
関連する問題