Значит есть класс.... У этого класа есть функция инициализации и она активируется в скрипте дважды: Первый раз как изначальная инициализация, а второй раз чтобы обновить данные, которые класс получает из БД и которые были обновленны между первой и второй инициализацией. А дело такое - по непонятным причинам, во время второй инициализации данные не хотят обновляться. В БД данные обновлены, скрипт делает запрос и всёравно возвращает старые данные, ...Правда после рефреша уже всё нормально!!! И пока Z пытался разобраться в чём дело - раставлял в скрипте после запросов var_dump()'ы массивов, я заметил, что если после запроса написана функция вар_дампа, то всё работает замечательно, данные обновляют без рефреша итп, а если вар_дампы убрать то снова всё по старому. Поэтому, помогите пожалуйста советом, где искать ошибку и каким образом? Как может вывод вар дампа повлиять на работу всего скрипта? Я пробовал сбрасывать указатели в масивах - это не помогает...
Весь код не выкладываю, ибо от этого толку нет... Вот тот самый запрос, который в скрипте повторяется дважды: Код (Text): $query = 'SELECT * FROM tiles WHERE crdx="'.$crdx.'" AND crdy="'.$crdy.'";'; $mysql_query = mysql_query($query, MYSQL::$cnnn); $array = mysql_fetch_assoc($mysql_query); echo '==================================================<br><br>'; echo 'ARRAY '; echo var_export($array).'<br><br>'; если закоментировать все echo то $array['var'] не будет обновлятся - т.е. при первом исполнении mysql_query $array['var'] будет равен данным из бд, потом, в этом же скрипте данные в бд обновятся И снова-во второй раз будет исполнен именно этот mysql_query, только $array['var'] не обновиться, а будет равен значению полученому при первом исполнении mysql_query. А если все echo раскоментировать то всё происзодит правильно, и после второго запроса mysql_query $array['var] будет равен новым значениям. Может теперь понятнее?!
Вообще, у меня есть мысль, почему бы это могло бы быть, но она достаточно невероятна, что бы я сел ее проверять сам. Может, ты сможешь предоставить минимальный нерабочий код, строк в 10-15, который бы реально показывал проблему?
Код (Text): class Blah { static $var; static function Init(){ $query = 'SELECT var1 FROM base1'; $mysql_query = mysql_query($query); $array = mysql_fetch_assoc($mysql_query); self::$var = $array['var1']; } } Blah::Init(); //Blah::$var = 'aaaaa'; $query = 'UPDATE base1 SET var1="bbbbb"'; $mysql_query = mysql_query($query); Blah::Init(); //Blah::$var = 'aaaaa'; // а должен быть bbbbb. вторая Init() должна, сделав снова запрос к БД, задать уже новое значение $var1
разобрался. дело в том, что этот - Код (Text): $query = 'UPDATE base1 SET var1="bbbbb"'; $mysql_query = mysql_query($query); код, в моём случае задавал var1=NULL, а фукция Init() пропускала пустые значения, тем самым не изменяла Blah::$var на новое значение, и Blah::$var был равен тому, что было задано при первом запуске Init(). Скидывайте в форум для новичков