while循环中if语句混乱

如何解决while循环中if语句混乱

| 在过去的四天内,这一直是我的不懈努力。我真的希望能够解决这个问题,而不必在这里询问,因为它包含很多代码,但是我恐怕已经尝试并尝试减少问题的发生,就像我一样。追着我的尾巴。我已经尽我所能消除了很多代码-我可能已经消除了比我应该轻松了解正在发生的事情多得多的代码,请随时提出澄清。 内容提要: 我正在从Google日历中提取日历供稿,并填充自己的日历。我的日历添加了一些功能,其中有一个“时间轴事件”数据库,该数据库类似于从常规事件发生一定天数(
DaysFromEvent
)的待办事项。 该Cron提取了供稿,并在Google日历上搜索了任何新事件,并将它们添加数据库中。 (这部分似乎正在按预期方式工作)。 cron还会查看“ 1”字段,以查看事件是否已修改,如果已修改,则它将更新数据库中的事件。这似乎也可行。问题是如果修改了主事件,那么我还需要查看数据库提取与主事件相关的任何时间轴事件,并根据
StartTime + DaysFromEvent
更改其开始时间。 我想我几乎是用这个脚本来做的,但是我似乎在with4ѭ语句内部的my3ѭ循环中遇到了麻烦。 当我通过脚本运行修改后的事件时,只会回显到::5ѭ 我应该从while循环中得到回声,但我不是。对于冗长的单词,我深表歉意,对于冗长的代码,我深表歉意。我是这个新手,请保持温柔。 :) 我准备放弃并聘请某人为我完成此任务,因为我是音乐家,而不是程序员!
if((int)$Feed->totalResults>0)  { //checking if at least one event is there in this date range

    foreach ($Feed as $event) { //iterating through all events and pulling all the info to assign the variables below.

        $UserID= \"42\";
        $eventDatabase = \"events\";  

        //Setting startDate and startTime and endDate and endTime
        $startDate = $event->when[0]->startTime;
        $date = strtotime($startDate);
        $startDate = date(\'Y-m-d H:i:s\',$date);
        $startArray = explode(\' \',$startDate);
        $startTime = $startArray[1];
        $EndDate = $event->when[0]->endTime;
        $date = strtotime($EndDate);
        $EndDate = date(\'Y-m-d H:i:s\',$date);
        $Endarray = explode(\' \',$EndDate);
        $EndTime = $Endarray[1];  

        $ModifiedInGoogle = $event->updated->text;
        $GoogleID = $event->id;

        $EventName = stripslashes($event->title);
        $PromotionalTimeLine = \"0\";
        $ParentEventID = \"NULL\";
        $DaysFromEvent = \"\";


        //We are seeing if the Event is already in the database by looking for the googleID
        $query = \"SELECT * FROM \".$eventDatabase. \" WHERE GoogleID=\'$GoogleID\'\";
        $result = MysqL_query($query);

        $row = MysqL_fetch_array($result,MysqL_ASSOC);

        //This loop UPDATES events if ModifiedInGoogle string is different than what is already in the database
        if($ModifiedInGoogle != $row[\'ModifiedInGoogle\']){

            //Variables for modifying the timeline start time
            $ModifiedEventStartTime = $row[\'StartTime\'];
            $tempParentEventID = $tempEventID = $row[\'EventID\'];
            $tempTimelineID = $row[\'PromotionalTimeLine\'];

            //THIS ECHOS AS I EXPECT IT SHOULD
            echo \"Event ID: \".$tempEventID. \",Promotional Time Line: \".$tempTimelineID.\",Parent Event ID: \".$tempParentEventID.\"<br>\";

            //Updates main event when modified in google:
             MysqL_query(\"UPDATE \".$eventDatabase.\" SET 
             EventName = \'$EventName\',StartDate = \'$startDate\',StartTime = \'$startTime\',EndTime = \'$EndTime\',EndDate = \'$EndDate\',Description = \'$Description\',AllDay = \'$AllDay\',CreatedOn = \'$CreatedOn\',GoogleID = \'$GoogleID\',ModifiedInGoogle = \'$ModifiedInGoogle\'

             WHERE GoogleID=\'$GoogleID\' \");

            //Query to select the timeline events that have the same ParentEvenID-this is where everything seems to start falling apart...
            $query = \"SELECT * FROM events WHERE ParentEventID=\'.$tempParentEventID.\' AND GoogleID IS NULL\";
            $tempresult = MysqL_query($query);

        while($row = MysqL_fetch_array($tempresult,MysqL_ASSOC)){

            $tempEventID = $row[\'EventID\'];
            $tempDaysFromEvent = $row[\'DaysFromEvent\'];
            $tempStartDate = $row[\'StartDate\'];

            //THIS LINE IS NOT ECHOING
            echo \"EventID: \".$tempEventID.\",Start Date: \".$tempStartDate.\",Days From Event: \".$tempDaysFromEvent.\",Parent Event ID: \".$row[\'ParentEventID\'].\"<br>\";

            //IF STARTDATE IS DIFFERENT FROM HOW IT USED TO BE,UPDATE IT.
            list($year,$month,$day) = explode(\"-\",$tempStartDate);
            $tempStartDate      =   $tempEndDate    =    date(\"Y-m-d\",mktime (0,$day+$tempDaysFromEvent,$year));
            echo \"TempStart Date:\".$tempStartDate.\"<br>\";

            //Query to update the startdate of the events
            MysqL_query(\"UPDATE\".$eventDatabase.\" SET
            StartDate = \'$tempStartDate\'
            WHERE EventID = $tempEventID
            \");
        }  //Closes While loop


        }  //This closes the update if modified if statement

    //This loop adds NEW EVENTS
    if (!MysqL_num_rows($result)) {

    //Insert NEW EVENTS

    }
} //ends main event loop
} else  { 

  echo \"No event found\";
}
    

解决方法

        线内
$query = \"SELECT * FROM events WHERE ParentEventID=\'.$tempParentEventID.\' AND GoogleID IS NULL\";
您包括单引号而不是双引号。你是说有
$query = \"SELECT * FROM events WHERE ParentEventID=\".$tempParentEventID.\" AND GoogleID IS NULL\";
或可能没有点(如果要保留定界符)
$query = \"SELECT * FROM events WHERE ParentEventID=\'$tempParentEventID\' AND GoogleID IS NULL\";
    ,        好吧,跳到我身上的第一件事是while循环:     while($ row = mysql_fetch_array($ tempresult,MYSQL_ASSOC)) 为了使while循环继续进行,该参数必须为\“ true \”。我对php不太熟悉,某些语言接受大于0的任何整数都不为假,但这可能是错误的来源。     ,        它说:
while($row = mysql_fetch_array($tempresult,MYSQL_ASSOC)){
不应该是:
while($row == mysql_fetch_array($tempresult,MYSQL_ASSOC)){
如果这不是目的,那么似乎有些可疑,因为您无法从操作中获得正确的值,因此您将需要某种查询。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?