php
  • mysql
  • 2011-06-24 10 views 0 likes 
    0

    私は数日間このことに取り組んできました。私の脳はついに麻痺しました。私のUPDATEは、データベース内のすべてのStartDateを更新しているだけですが、このUPDATEが含まれているwhileループのイベントにのみ作用したいと思います。コードはおそらくかなり明白ですので、ここにあります:この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を変更しようとしています。

    +2

    'UPDATE'は' WHERE'を受け入れなければなりません。 –

    +0

    更新が行われる必要がある条件は何ですか? – Balanivash

    +0

    'UPDATE'クエリで' WHERE'条件を設定して、必要な行のみを更新することができます。 –

    答えて

    6

    where句の追加はどうですか。

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

    単にあなたの更新文に-clause WHEREを追加します。

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

    *あなたがやりなさいあなたのテーブル定義を掲載していますが、ここではあなたのイベントIDを使用する必要がありますように聞こえます。

    1

    更新する行を識別するには、UPDATE-StatementにWHERE節が必要です。

    2

    クエリが

    "UPDATE".$eventDatabase." SET StartDate = '$tempStartDate' WHERE EventId =". $row['evenID']; 
    
    関連する問題