0

次のコードがありますが、期待した結果が得られていないようです。

$date_from = '2012-04-27 18:19:33';
$date_to = '2012-05-29 00:59:57';

$database->connect(); 
        $ancestors = mysql_query('
            SELECT * FROM ' . $database->db_prefix . 'comments e
                WHERE e.created BETWEEN "' . $date_from . '" AND "' . $date_to . '" AND   
                    e.ancestors = "' . $comment["id"] . '" AND e.user_id != "' . $user->user_object["id"] . '" AND
                        NOT EXISTS
                        (
                            SELECT null 
                            FROM ' . $database->db_prefix . 'notifications d
                            WHERE  d.target_id = e.id
                        )
                        ORDER BY e.created DESC
        ', $database->connection_handle);
    $database->close();

ばかげたエラーかもしれません。しかし、selectステートメントと使用されている日付が有効なMYSQLのものであるかどうかわからない場合は、確信が持てません。

どんな助けでも素晴らしいでしょう。私は精練してきました、そして私がしていることは正しいようです、それで混乱。

編集済み//

date_fromとdate_toの日付の間に多くのコメントがあり、通知テーブルに通知がありません(一部は存在しません)...したがって、基本的に、約25のコメントを返す必要があります...代わりに、1つのコメントが返されます。 2012-05-2900:23:39の日付

編集済み//

日付と日付、そして時刻と時刻しか比較できないからですか?これを行うために、どのようにmysqlを適応させることができますか?

編集済み//

それは、between関数がうまくいかないことを定義しています。一体何が悪いのかよくわかりません。

  1. 2つの日付の間のレコードを返すことはできますか?
  2. 例を挙げていただけますか?

編集済み//問題は解決されました。クエリとは何の関係もなかったので、これが正しい方法であると言っても差し支えありません。私は自分の日付範囲をばかげた方法で行っていました。すべてのあなたの気紛れな助けの人に感謝します!!!!

4

2 に答える 2

0

私は同じ問題に遭遇しました。この解決策を適用したいと思うかもしれません:

$from = $_GET['from'];
$to = $_GET['to'];
include("connect.php");
$link=Connection();
$query = "SELECT * FROM records WHERE date_time BETWEEN '$from' AND '$to'";
$result=mysql_query($query,$link);
$list = array();
if($result === FALSE) {
    echo "No data";
}

ここでの秘訣はサインクォートです。変数をそのクォート内に配置して、mysql で処理できるようにする必要があります。

于 2015-06-11T13:24:25.723 に答える