-4

フィールド「PREGLEDALI」、「PREGLEDA1」、「PREGLEDA2」のフィルターは完全に機能しますが、日付範囲フィルターは機能しません。データベースに日付形式 (01.10.2013) があります。

    $result = mysql_query("SELECT * FROM preglediv1 WHERE NOW() BETWEEN '%s".$start."%s' AND  '%s".$end."%s'");
    $result = mysql_query("SELECT * FROM preglediv1 WHERE (`pregledali` LIKE '%".$query."%') OR (`pregleda1` LIKE '%".$query."%') OR (`pregleda2` LIKE '%".$query."%')")
    or die(mysql_error());
    if(mysql_num_rows($result) > 0)
    {
        while($results = mysql_fetch_array($result))
4

1 に答える 1

1

あなたが提供したコードでは、2 つの問題を確認できます。

  • $resultmysql_query() への 2 回目の呼び出しでデータを上書きしています。
  • NOW()また、制約の間にある現在の日付 ( ) も探しています。

MySQL で VARCHAR ではなく DATE または DATETIME カラムを使用していると仮定すると、次のことができます ($start と $end は"yyyy-MM-dd"としてフォーマットする必要があります)。

$sql = "SELECT * FROM preglediv1 WHERE [nameofdatecolumn] BETWEEN '" . $start . "' AND '" . $end . "' AND " .
            "(`pregledali` LIKE '%".$query."%') OR (`pregleda1` LIKE '%".$query."%') OR (`pregleda2` LIKE '%".$query."%')";
$result = mysql_query($sql);
于 2013-11-04T18:40:54.220 に答える