我创建了一个由每周CronJob触发的PHP脚本。 如果最后一次活动的日期超过2周,则CronJob触发后,该字段将变为红色,并且将向特定的人发送电子邮件。
我可以获取需要邮寄的数据,并且已经可以了。现在,我只需要将字段mailed
更新为1
。
我在phpMyAdmin中尝试了SQL查询:
UPDATE klanten_potentioneel SET mailed = 1 WHERE naamklant = '$naam'
$naam
显然已更改为现有名称的地方。该查询有效。
<?php
$conn = new mysqli("localhost", "xxx", "xxx", "xxx");
$sql = "SELECT * FROM table WHERE mailed IS NULL GROUP BY naamklant ORDER BY id DESC ;";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
if (strtotime($row["datumlastvisit"]) < strtotime('-14 days')) {
$mailNeeded = '1 ';
//hier de code van mailen
$to = 'fictional@mail.com';
$subject = 'geen actie potentieel';
$message = "Er is nog geen actie ondernomen bij $row[naamklant] sinds $row[datumlastvisit] door $row[naam].";
$headers = 'From: noreply@mail.nl\r\n';
// Sending email
if(mail($to, $subject, $message,$headers)){
}
$naam = $row["naamklant"];
$sql = "UPDATE klanten_potentioneel SET mailed = 1 WHERE naamklant = '$naam'";
}
else if (strtotime($row["datumlastvisit"]) < strtotime('-7 days')) {
$mailNeeded = '0';
} else {
$mailNeeded = '0';
}
//to test if the code is working
echo $row["naamklant"];
echo " - ";
echo $mailNeeded;
echo "<br>";
}
}
else {
echo "There is nothing to be mailed.";
}
?>
数据库中的记录应该正在更改,但不会更改。
答案 0 :(得分:-2)
完成查询构建后,您可以执行它并获取结果。
在这种情况下,您不会在UPDATE
查询之后执行此操作。
添加
$conn->query($sql);
之后
$sql = "UPDATE klanten_potentioneel SET mailed = 1 WHERE naamklant = '$naam'";