смотрите, у вас код, который работает дома, но не работает еще где-то. значит ошибка в окружении. и скорее всего в различиях в базе данных, на что прямым текстом указывает ошибка (если конечно это именно та ошибка). может вы в скрипте подключаетесь к какой-то базе и в таблице этой базы действительно нет колонки image ? самый простой способ - это подключится в консоли к базе и выполнить там запрос. или в phpmyadmin его выполнить и посмотреть результат.
Roman82 подход такой. лезешь на php.net в правом верхнем углу - окошечко. там можно делать поиск. если не нашел, на страничке на котрой он об этом скажет, он предложит сделать поиск не только в функциях, но и везде. там статьи и спецификация всякого. Читаем, крутим страничку до каментов, внемлим вселенской мудрости, быстро копипастим - работает -> счастье. после того как заработало - открываем новый проект в NetBeans - бесплатный редактор с закачкой и возможностью дебага (дебаг пхп происходит на сервере, так что суровые сибирские мужики расставляют просто echo и var_dump на стадии разработки), называем красиво и закрываем. Берем листок бумаги, ручку-карандашик, и начинаем проектировать с того, что описываем цели и требуемые результаты. Слегка набрасываем алоритм просто русским языком. Чешем репу, ищем одинаковые куски - выносим в функции. Чешем репу еще и дописываем в параметры функций диапазон, в котором они будут считаться правильными и годными. В остальных случаях функа желательно чтобы выдавала что-то типа false или иное значение по умолчанию. Расписав это все в самых общих чертах, начинаем скрипт с объявления дефолтных значений переменных. Потом поехали по алгоритму писать. По мере дописывания до мест, где хорошо бы применить функу - пишем функи. Набрасываем какую-никакую структуру бд по живому прямо там и у себя в голове. Дописываем скрипт, чешем репу, осмысляем. Закрываем проект. Открываем новый проект и закрываем нетбинс опять. Берем листок бумаги, чешем репу, продумываем структуру БД с именами и типами полей. Читаем про типы и всякое такое на том же http://phpclub.ru/mysql/doc/column-types.html Расписав все красиво и точно начинаем неторопливо писать все в код скрипта. Вот теперь все будет работать.
iliavlad, про несоответствие баз логично. база у меня только одна, и колонка image есть, через phpmyadmin смотрел. igordata, у меня все работало, до того момента пока я не вставил колонку image. Написал хостеру, может он че прояснит.
ну если вы не потроллить пришли, сделайте дамп базы, покажите его здесь и рядышком код, с помощью которого вы с базой работаете. тогда сразу будет видно. без дампа и кода смысла обсуждать нет.
База данных Структура таблицы tbl_novosti Поле Тип Null По умолчанию novostiID int(100) Нет author varchar(500) Да NULL novost text Да NULL date varchar(50) Да NULL name varchar(100) Да NULL image text Да NULL do { if (!is_file("image_new/".$row_rs_tbl_novosti_prov['image'])) { $query_tbl_novosti_prov = "UPDATE tbl_novosti SET image='' WHERE novostiID=$id LIMIT 1"; $update_nov_prov = mysql_query($query_tbl_novosti_prov, $unsk) or die(mysql_error()); } } while ($row_rs_tbl_novosti_prov = mysql_fetch_assoc($rs_tbl_novosti_prov));
Roman82 код говно. Почему? - Потому что условие цикла проверяется ПОСЛЕ того, как цикл выполнен. Было бы лучше проверять ДО того, как выполняется цикл. В твоём же варианте $row_rs_tbl_novosti_prov нужно инициализировать ДО цикла, написав пару лишних строчек, запутав читабельность кода и т.д... и т.п... а проблема... попробуй поставить апострофы в названии колонки PHP: <?php $query_tbl_novosti_prov = "UPDATE tbl_novosti SET `image`='' WHERE novostiID=$id LIMIT 1"; ?>
С апострофами выдает: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''image'='' WHERE novostiID=41 LIMIT 1' at line 1
Roman82 для тех, кто не различает на глаз апостроф и одинарную кавычку, могу подсказать, что апостроф (`) ставится клавишей "ё" в английской раскладке. для тех, кто не различает "е" и "ё" могу подсказать, что буква "ё" (та, которая нам нужна) отличается от "е" двоеточием сверху, и находится в левом верхнем углу клавиатуры, под кнопкой Esc
Roman82 пересоздай таблицу и перезапусти сервер. если это глюк мускула (что тоже возможно), должно помочь.
Проблема решена. Хостер поменял сервера, и все что я делал, делал на старом сервере, на новом добавил колонку и все заработало. Gromo, по поводу кода: while ($row_rs_tbl_novosti_prov = mysql_fetch_assoc($rs_tbl_novosti_prov)) { if (!is_file("image_news/".$row_rs_tbl_novosti_prov['image'])) { $query_tbl_novosti_prov = "UPDATE tbl_novosti SET image='' WHERE novostiID=$id LIMIT 1";}}; так лучше будет?
должно быть. но убедись что всё работает так, как нужно. подозреваю, что чуть выше этого кода стояли ещё строки, необходимые для нормального функционирования твоего старого варианта цикла.
Да, все вроде работает, и выше есть код, там соединение с базой и выбор таблицы, но вобщем смысл я понял, спасибо! Всем спасибо за помощь.