PHP: <?php $toodey = date ("Ymd"); include ("bd_competition.php"); $sql13 = "SELECT 'time_comp' FROM `competition`"; $result13 = mysql_query($sql13, $db_comp) or die ("Ошибка в запросе: " . mysql_error()); if (!$result13) { echo "ошибка - ".mysql_error().""; echo $sql13; exit(); } else { while($myrow13 = mysql_fetch_array($result13)) { if ($toodey > $myrow13['time_comp']) { $old = "old"; $sql14 = "UPDATE `competition` SET `when` = '$old'"; $result14 = mysql_query($sql14, $db_comp) or die ("Ошибка в запросе: " . mysql_error()); if (!$result14) { echo "ошибка - ".mysql_error().""; echo $sql14; exit(); } } else { $new = "new"; $sql15 = "UPDATE `competition` SET `when` = '$new'"; $result15 = mysql_query($sql15, $db_comp) or die ("Ошибка в запросе: " . mysql_error()); if (!$result15) { echo "ошибка - ".mysql_error().""; echo $sql15; exit(); } } } } ?> У меня переменная time_comp имеет несколько значений: 20111231,20111231,20111101 Согласно кода,как мне кажется,при выборке этой переменной из базы и сравнении с сегодняшней датой первые два значения должны быть new, а последний old...но все они new! Прошу указать на ошибку!Заранее благодарен!
А зачем вам и if и die сразу? Это практически тоже самое. PHP: $result13 = mysql_query($sql13, $db_comp) or die ("Ошибка в запросе: " . mysql_error()); if (!$result13) { echo "ошибка - ".mysql_error().""; echo $sql13; exit(); } else {
Бред какой-то. UPDATE-запрос без WHERE, естественно, обновит все данные, а не только некоторые. Нафига перебирать в цикле и для каждой строки апдейтить всю таблицу? Напиши так [sql]UPDATE `competition` SET `when` = 'old' WHERE DATE_FORMAT(NOW(), "%Y%m%d") > `time_comp`; UPDATE `competition` SET `when` = 'new' WHERE DATE_FORMAT(NOW(), "%Y%m%d") < `time_comp`;[/sql] И всё, никаких циклов там не надо.