0

単純な MYSQL UPDATE ステートメントに行き詰まっています。データベースから ID を選択し、レコード WHERE ID = $ID を更新します。コード:

$searchDates = ('SELECT * FROM booking_event WHERE subject != "Closed" AND is_reminded IS NULL AND DATE_ADD(NOW(), INTERVAL 2 DAY) >= `starting_date_time` AND NOW() <= `starting_date_time`'); 

$result = mysql_query($searchDates) or die (mysql_error());

while ($row = mysql_fetch_array($result)) {
  $id = $row['event_id'];

mysql_query("UPDATE booking_event SET is_reminded = 1 WHERE event_id = '$id'") or die (mysql_error()); 

}

何らかの理由で、データベースから選択された ID で更新されません。testID 変数を使用してみましたが、正常に動作します。

どんな助けでも感謝しますありがとう!

4

2 に答える 2

2

次のように、1 つのクエリでこれを行うことができます。

UPDATE booking_event b1
INNER JOIN
(
    SELECT * 
    FROM booking_event 
    WHERE subject != "Closed" 
      AND is_reminded IS NULL 
      AND DATE_ADD(NOW(), INTERVAL 2 DAY) >= starting_date_time 
      AND NOW() <= starting_date_time
) b2
SET t1.is_reminded = 1 WHERE b1.event_id = b2.event_id
于 2012-12-06T11:45:20.857 に答える
1

PHP variables are case sensitive. Most likely your column name in MYSQL will be something like Event_Id or any other casing. Using SELECT * will return the actual name, so to fetch it you would need $id = $row['Event_Id'];

Best thing to be sure you dont have a casing problem, use:

SELECT event_id FROM ....

and then $id = $row['event_id']; will work.

于 2012-12-06T11:47:40.623 に答える