2011-07-27 6 views

答えて

3

MySQLはあなたが質問でそれを送ったPHPコードを実行しません。

これはおそらくあなたがすることではありません。代わりに、date()コールの結果を連結します。

$query = "SELECT * FROM contacts WHERE agentassigned = 'agent' AND reminder ='$reminder " . date("Y-m-d",strtotime("+7 day")) . "' ORDER BY firstname"; 

はあなたのコメントをもとに、あなたが実際にこのような何かをしたい:あなたはリマインダーの日付を含むあなたのテーブルに列reminder_dateを追加する必要が

SELECT 
    * 
FROM 
    contacts 
WHERE 
    agentassigned = 'agent' 
AND 
    reminder_date BETWEEN CURRENT_DATE AND CURRENT_DATE + INTERVAL 7 DAY 

。あなたはあなたがしているような文字列からそれを解析しようとは思わない。それは遅く、間違っている。

+0

リマインダーの日付は2011-07-29で、まだそのコードを使用して表示されていません... ?? – joshua76

+0

あなたが時間旅行者でない限り、3日後、今から7日後ではありません:) –

+0

私のコードで何が間違っているのですか?次の7日間ですべてのリマインダーを表示したいですか? – joshua76

1

二重引用符で囲まれた文字列の中で関数呼び出しを補間することはできません。代わりに、最初の関数呼び出しを行うと$dateに結果を保存します。

$date = date("Y-m-d",strtotime("+7 day")); 
$query = ("SELECT * FROM contacts WHERE agentassigned = 'agent' AND reminder ='$reminder $date' ORDER BY firstname") or die ('Error: ' .mysql_error()); 
+0

ありがとう!私はこれを試してみました...リマインダーの日付は2011-07-29に設定されていますが、そのコードを使用してリマインダーを引き出していません... ?? – joshua76

+0

もし私がその週のスパンのために引っ張りたいのであれば、例えば今週の7月24日から7月30日まで? – joshua76

+0

@ joshua76クエリ内に '$ reminder'変数があるので、テーブルデータの例を投稿する必要があります。これはdatetimeカラムではないと仮定する必要があります。 –

1

クエリが将来に7日間を見ているようですので。 「+7日」の代わりに「-7日」を試してください。

+0

です。それは私が次の7日間のすべてのリマインダーを引っ張りたいものです。 – joshua76

+0

ああ、あなたのタイトルはそれを言っていません。それ以外の答えを見てください。ちょうど7日目ではなく、次の7日間を望むなら、<=、not = =が必要です。 – Thilo

+0

これを行うには、日付をvarchar/text列の文字列の一部ではなく、DATE型の列に格納する必要があります。次に、データベースに 'WHERE CURRENT_DATEとCURRENT_DATE + INTERVAL 7 DAY間のいつか 'の行を問い合わせるだけです。 –

関連する問題