2012-01-14 21 views
0

これはおそらくクエリを実行するための絶対に恐ろしい方法であり、もちろん動作しないことに気付きます。そのポイントは、日付範囲とキーワードに基づいてユーザーを選択することです。多くの条件を持つmysqlクエリ

$query = mysql_query("SELECT * FROM my_users WHERE my_regdate BETWEEN '$ftimestamp' AND '$ttimestamp' AND my_username LIKE '%$trimmed%' OR my_realname LIKE '%$trimmed%' OR my_email LIKE '%$trimmed%' ORDER BY my_id"); 
+2

あなたの質問は何ですか? :) –

答えて

1

あなたはエラーを印刷するには、クエリ

$query = mysql_query("SELECT * FROM my_users WHERE my_regdate BETWEEN '$ftimestamp' AND '$ttimestamp' AND (my_username LIKE '%$trimmed%' OR my_realname LIKE '%$trimmed%' OR my_email LIKE '%$trimmed%') ORDER BY my_id"); 
+2

@Gary文字列補間($ ftimestamp、$ ttimestamp)はSQLインジェクションの対象ではないので、プレースホルダを使うことができるようにPDOの使用を検討したいと思うかもしれません。この情報はすべて、PHPマニュアルで見つけることができます。 –

0

利用mysql_error()の括弧が欠落しています。

$query ="SELECT * FROM my_users WHERE my_regdate BETWEEN '$ftimestamp' AND '$ttimestamp' AND my_username LIKE '%$trimmed%' OR my_realname LIKE '%$trimmed%' OR my_email LIKE '%$trimmed%' ORDER BY my_id"; 
$res= mysql_query($query) or die(mysql_error());