如何使此UPDATE仅在此while循环中起作用?

时间:2011-06-24 08:22:59

标签: php mysql

我一直在研究这个问题几天,我的大脑终于麻木了。我的UPDATE只是更新数据库中的每个StartDate,但我希望它只对包含此UPDATE的while循环中的事件起作用。我认为代码可能相当明显,所以这里是:

$query = "SELECT * FROM events WHERE ParentEventID='$tempParentEventID' AND GoogleID IS NULL";
$result = mysql_query($query);
            while($row = mysql_fetch_array($result, MYSQL_ASSOC)){

                $tempDaysFromEvent = $row['DaysFromEvent'];
                $tempStartDate = $row['StartDate'];

                //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,0,0,$month,$day+$tempDaysFromEvent,$year));


                mysql_query("UPDATE".$eventDatabase." SET
                StartDate = '$tempStartDate'");


            }

我希望上面的内容足够清楚。我试图在循环中更改每个$行中的StartDate。

4 个答案:

答案 0 :(得分:6)

如何添加where子句。

"UPDATE table SET field = '$sValue' WHERE eventID = ".$aRow['eventId']);

答案 1 :(得分:2)

查询应为

 "UPDATE".$eventDatabase." SET  StartDate = '$tempStartDate' WHERE EventId =". $row['evenID'];

答案 2 :(得分:1)

只需在update-statement中添加WHERE - 子句:

UPDATE table SET StartDate = ... WHERE [whatever*]

*你没有发布表格定义,但听起来你应该在这里使用你的event-id。

答案 3 :(得分:1)

您需要在UPDATE语句中使用WHERE - 子句来标识要更新的行。