Por que esses dados não são tirados de 7 dias?

Não consigo descobrir onde eu vou dar errado aqui. Isto é o que eu tenho:

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

O MySQL não executará o código PHP que você enviou na consulta.

Provavelmente não é o que você queria fazer. Em vez disso, concatene o resultado da chamada date() .

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

Com base em seus comentários, você realmente quer algo como isto:

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

Onde você precisa adicionar uma coluna reminder_date para sua tabela que contém a data do lembrete. Você não quer tentar analisá-lo fora de uma string como você está fazendo. É lento e errado.

Não é possível interpolar uma chamada de function dentro de uma string com citações duplas. Em vez disso, faça a function chamar primeiro e salve o resultado em $date :

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

Como a sua consulta parece ter 7 dias de antecedência. Tente “-7 dias” em vez de “+7 dias”.