是否可以通过此代码形成某种循环?

时间:2018-12-07 15:03:55

标签: php loops

我需要每月每个月创建一个具有不同操作代码的循环。这意味着我每个月必须运行唯一的代码。

$date="2012-05-31";

for ($i=1; $i<31; $i++) {
    $newdate=str_replace('-', '/', $date);
    $codeDate = date('Y-m-d',strtotime($newdate . "+".$i." days"));
    if ($i==1) echo "\n"."new cycle start:  ".$codeDate; 
    /* UNIQUE CODE FOR JUNE 2012 */ 
}
echo "\n"."new cycle end:  ".$codeDate."\n \n"; 


for ($i=1; $i<32; $i++) {
    $newdate=str_replace('-', '/', $codeDate);
    $codeDate1 = date('Y-m-d',strtotime($newdate . "+".$i." days"));
    if ($i==1) echo "\n"."new cycle start:  ".$codeDate1; 
    /* UNIQUE CODE FOR JULY 2012 */ 
}
echo "\n"."new cycle end:  ".$codeDate1."\n \n"; 

for ($i=1; $i<32; $i++) {
    $newdate=str_replace('-', '/', $codeDate1);
    $codeDate2 = date('Y-m-d',strtotime($newdate . "+".$i." days"));
    if ($i==1) echo "\n"."new cycle start:  ".$codeDate2; 
    /* UNIQUE CODE FOR AUGUST 2012 */ 
}
echo "\n"."new cycle end:  ".$codeDate2;

我需要这种方法几年了。使用循环或其他工具执行此操作的某种方法吗?

1 个答案:

答案 0 :(得分:1)

您将需要解决此问题,因为它可能会产生错误,而不是只是冷写测试而已......但是遵循这些原则(尽管这并没有考虑删除数据,因此您会re表不仅会越来越大)。

$month = date('m');
$year = date('y');    
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
    $result = $mysqli->query("SELECT token FROM token_table WHERE year = $year AND month = $month ");

if(count($result) > 0) {
   $token = $result[0]['token'];
} else {
   $token = generateYourTokenHoweverYouDoIt();
    $mysqli->query("INSERT INTO token_table (month, year, token) VALUES ('$month', '$year', '$token')");
}

//Use token.

此外,您需要确保对数据库查询中使用的任何变量进行安全性清理……通常只是那些可能来自用户输入的变量,因此在这里应该没问题……但考虑到安全性总是好事使用数据库时...

查看:http://php.net/manual/en/mysqli.query.php

和:http://php.net/manual/en/book.pdo.php

我个人使用PDO,但是编写时间更长,而mysqli也更自然地出现。但是要同时研究两者。