【发布时间】:2016-07-28 22:33:26
【问题描述】:
我正在尝试构建一个动态数据库驱动的日历应用程序。我在第 1 步,尝试设置日历。与其手动输入所有内容,我想我会走捷径并制作一个 PHP 脚本将其全部添加到我的数据库中。
问题是,我的脚本涉及很多 while 循环。加载需要很长时间。执行脚本可能只需要一段时间,还是某处有错误?有没有更简单的方法来制作日历?
编辑:我的所有数据库配置都在这个块之前的另一个块中。这不是问题。
编辑 2:我注意到我的一些 SQL 包含保留关键字。我把它们改成了不同的词。
这是我的代码:
<?php
$calsql = "SELECT * FROM callender";
$calquery = mysqli_query($db,$calsql);
$calisfull = mysqli_num_rows($calquery);
if ($calisfull < 1) {
while ($all < 365) {
$year = "2016";
$month = 1;
if ($month == 1){
$dayofmonth = 1;
while ($dayofmonth < 32) {
$d = 0;
while ($d < 7) {
if ($d == 0){
$day = "Friday";
}
else if ($d == 1){
$day = "Saturday";
}
else if ($d == 2){
$day = "Sunday";
}
else if ($d == 3){
$day = "Monday";
}
else if ($d == 4){
$day = "Tuesday";
}
else if ($d == 5){
$day = "Wednesday";
}
else if ($d == 6){
$day = "Thursday";
}
$fillsql = "INSERT INTO callender (month, date, year, day) VALUES ('$month', '$dayofmonth', '$year', '$day')";
$fquery = mysqli_query($db,$fillsql);
$perfectly = "Perfectly";
$dayofmonth++;
$all++;
}
$d = 0;
}
$month++;
}
if ($month == 2){
$dayofmonth = 1;
while ($dayofmonth < 30) {
while ($d < 7) {
if ($d == 0){
$day = "Friday";
}
else if ($d == 1){
$day = "Saturday";
}
else if ($d == 2){
$day = "Sunday";
}
else if ($d == 3){
$day = "Monday";
}
else if ($d == 4){
$day = "Tuesday";
}
else if ($d == 5){
$day = "Wednesday";
}
else if ($d == 6){
$day = "Thursday";
}
$fillsql = "INSERT INTO callender (month, date, year, day) VALUES ('$month', '$dayofmonth', '$year', '$day')";
$fquery = mysqli_query($db,$fillsql);
$perfectly = "Perfectly";
$dayofmonth++;
$all++;
}
$d = 0;
}
$month++;
}
if ($month == 3){
$dayofmonth = 1;
while ($dayofmonth < 32) {
while ($d < 7) {
if ($d == 0){
$day = "Friday";
}
else if ($d == 1){
$day = "Saturday";
}
else if ($d == 2){
$day = "Sunday";
}
else if ($d == 3){
$day = "Monday";
}
else if ($d == 4){
$day = "Tuesday";
}
else if ($d == 5){
$day = "Wednesday";
}
else if ($d == 6){
$day = "Thursday";
}
$fillsql = "INSERT INTO callender (month, date, year, day) VALUES ('$month', '$dayofmonth', '$year', '$day')";
$fquery = mysqli_query($db,$fillsql);
$perfectly = "Perfectly";
$dayofmonth++;
$all++;
}
$d = 0;
}
$month++;
}
if ($month == 4){
$dayofmonth = 1;
while ($dayofmonth < 31) {
while ($d < 7) {
if ($d == 0){
$day = "Friday";
}
else if ($d == 1){
$day = "Saturday";
}
else if ($d == 2){
$day = "Sunday";
}
else if ($d == 3){
$day = "Monday";
}
else if ($d == 4){
$day = "Tuesday";
}
else if ($d == 5){
$day = "Wednesday";
}
else if ($d == 6){
$day = "Thursday";
}
$fillsql = "INSERT INTO callender (month, date, year, day) VALUES ('$month', '$dayofmonth', '$year', '$day')";
$fquery = mysqli_query($db,$fillsql);
$perfectly = "Perfectly";
$dayofmonth++;
$all++;
}
$d = 0;
}
$month++;
}
if ($month == 5){
$dayofmonth = 1;
while ($dayofmonth < 31) {
while ($d < 7) {
if ($d == 0){
$day = "Friday";
}
else if ($d == 1){
$day = "Saturday";
}
else if ($d == 2){
$day = "Sunday";
}
else if ($d == 3){
$day = "Monday";
}
else if ($d == 4){
$day = "Tuesday";
}
else if ($d == 5){
$day = "Wednesday";
}
else if ($d == 6){
$day = "Thursday";
}
$fillsql = "INSERT INTO callender (month, date, year, day) VALUES ('$month', '$dayofmonth', '$year', '$day')";
$fquery = mysqli_query($db,$fillsql);
$perfectly = "Perfectly";
$dayofmonth++;
$all++;
}
$d = 0;
}
$month++;
}
if ($month == 6){
$dayofmonth = 1;
while ($dayofmonth < 31) {
while ($d < 7) {
if ($d == 0){
$day = "Friday";
}
else if ($d == 1){
$day = "Saturday";
}
else if ($d == 2){
$day = "Sunday";
}
else if ($d == 3){
$day = "Monday";
}
else if ($d == 4){
$day = "Tuesday";
}
else if ($d == 5){
$day = "Wednesday";
}
else if ($d == 6){
$day = "Thursday";
}
$fillsql = "INSERT INTO callender (month, date, year, day) VALUES ('$month', '$dayofmonth', '$year', '$day')";
$fquery = mysqli_query($db,$fillsql);
$perfectly = "Perfectly";
$dayofmonth++;
$all++;
}
$d = 0;
}
$month++;
}
if ($month == 7){
$dayofmonth = 1;
while ($dayofmonth < 32) {
while ($d < 7) {
if ($d == 0){
$day = "Friday";
}
else if ($d == 1){
$day = "Saturday";
}
else if ($d == 2){
$day = "Sunday";
}
else if ($d == 3){
$day = "Monday";
}
else if ($d == 4){
$day = "Tuesday";
}
else if ($d == 5){
$day = "Wednesday";
}
else if ($d == 6){
$day = "Thursday";
}
$fillsql = "INSERT INTO callender (month, date, year, day) VALUES ('$month', '$dayofmonth', '$year', '$day')";
$fquery = mysqli_query($db,$fillsql);
$perfectly = "Perfectly";
$dayofmonth++;
$all++;
}
$d = 0;
}
$month++;
}
if ($month == 8){
$dayofmonth = 1;
while ($dayofmonth < 32) {
while ($d < 7) {
if ($d == 0){
$day = "Friday";
}
else if ($d == 1){
$day = "Saturday";
}
else if ($d == 2){
$day = "Sunday";
}
else if ($d == 3){
$day = "Monday";
}
else if ($d == 4){
$day = "Tuesday";
}
else if ($d == 5){
$day = "Wednesday";
}
else if ($d == 6){
$day = "Thursday";
}
$fillsql = "INSERT INTO callender (month, date, year, day) VALUES ('$month', '$dayofmonth', '$year', '$day')";
$fquery = mysqli_query($db,$fillsql);
$perfectly = "Perfectly";
$dayofmonth++;
$all++;
}
$d = 0;
}
$month++;
}
if ($month == 9){
$dayofmonth = 1;
while ($dayofmonth < 31) {
while ($d < 7) {
if ($d == 0){
$day = "Friday";
}
else if ($d == 1){
$day = "Saturday";
}
else if ($d == 2){
$day = "Sunday";
}
else if ($d == 3){
$day = "Monday";
}
else if ($d == 4){
$day = "Tuesday";
}
else if ($d == 5){
$day = "Wednesday";
}
else if ($d == 6){
$day = "Thursday";
}
$fillsql = "INSERT INTO callender (month, date, year, day) VALUES ('$month', '$dayofmonth', '$year', '$day')";
$fquery = mysqli_query($db,$fillsql);
$perfectly = "Perfectly";
$dayofmonth++;
$all++;
}
$d = 0;
}
$month++;
}
if ($month == 10){
$dayofmonth = 1;
while ($dayofmonth < 32) {
while ($d < 7) {
if ($d == 0){
$day = "Friday";
}
else if ($d == 1){
$day = "Saturday";
}
else if ($d == 2){
$day = "Sunday";
}
else if ($d == 3){
$day = "Monday";
}
else if ($d == 4){
$day = "Tuesday";
}
else if ($d == 5){
$day = "Wednesday";
}
else if ($d == 6){
$day = "Thursday";
}
$fillsql = "INSERT INTO callender (month, date, year, day) VALUES ('$month', '$dayofmonth', '$year', '$day')";
$fquery = mysqli_query($db,$fillsql);
$perfectly = "Perfectly";
$dayofmonth++;
$all++;
}
$d = 0;
}
}
if ($month == 11){
$dayofmonth = 1;
while ($dayofmonth < 31) {
while ($d < 7) {
if ($d == 0){
$day = "Friday";
}
else if ($d == 1){
$day = "Saturday";
}
else if ($d == 2){
$day = "Sunday";
}
else if ($d == 3){
$day = "Monday";
}
else if ($d == 4){
$day = "Tuesday";
}
else if ($d == 5){
$day = "Wednesday";
}
else if ($d == 6){
$day = "Thursday";
}
$fillsql = "INSERT INTO callender (month, date, year, day) VALUES ('$month', '$dayofmonth', '$year', '$day')";
$fquery = mysqli_query($db,$fillsql);
$perfectly = "Perfectly";
$dayofmonth++;
$all++;
}
$d = 0;
}
$month++;
}
if ($month == 12){
$dayofmonth = 1;
while ($dayofmonth < 32) {
while ($d < 7) {
if ($d == 0){
$day = "Friday";
}
else if ($d == 1){
$day = "Saturday";
}
else if ($d == 2){
$day = "Sunday";
}
else if ($d == 3){
$day = "Monday";
}
else if ($d == 4){
$day = "Tuesday";
}
else if ($d == 5){
$day = "Wednesday";
}
else if ($d == 6){
$day = "Thursday";
}
$fillsql = "INSERT INTO callender (month, date, year, day) VALUES ('$month', '$dayofmonth', '$year', '$day')";
$fquery = mysqli_query($db,$fillsql);
$perfectly = "Perfectly";
$dayofmonth++;
$all++;
}
$d = 0;
}
$month++;
}
}
}
echo "Code worked " . $perfectly;
?>
【问题讨论】:
-
不要将日期组件(存储 y-m-d)分开,这将使 db 功能更容易。我不会像这样预先填写数据库,它不是电子表格,除非你需要,否则不要存储日期。
-
$allwhile ($all < 365)@是什么 -
您应该始终使用准备好的语句。它将允许您的数据库仅使用一个查询,并在循环时交换值。
-
另外,考虑制作一个函数。你重复的代码太多了。
-
您的查询中的
date是什么?我们不知道它来自哪里
标签: php mysql sql while-loop calendar