Матвей Мамонов: там проблема в том, что в mysql_fetch_array приходит значение false, о чем выдается сообщение с ошибкой. Функция mysql_fetch_assoc имеет ровно такой же наборот параметров, поэтому смысл заменять одно на другое, если дело в другом?
Александр Тимков: если у вас phpMyAdmin, то добавьте индекс этому полю (если еще нет), потом поставьте галочку auto_increment (AI) в свойствах поля. Только перед этим вам надо очистить таблицу. Если же надо изменить всё запросами, то
ALTER TABLE 'mark' ADD INDEX ('id');
ALTER TABLE 'mark' CHANGE 'id' 'id' INT (11) NOT NULL AUTO_INCREMENT;
Дмитрий: Кстати, вам бы проверить путь, по которому происходит попытка создать картинку. Может быть ваш основной скрипт (код) пытается писать не туда, куда вы предполагаете?
Arti Markelov: а после создания отдельного файла и запуска основного кода - между этими действиями вы стирали файл созданной картинки? Вполне возможно, что ваш основной код ее не затронул просто.
Arti Markelov: проверил от себя - картинка отдается через file_get_contents(). Мистики не бывает. Если функция не запрещена, если вы получаете результат в виде данных, если работает file_put_contents, которая создает файл, то почему тогда она пишет туда "ничего" ? Может быть у вас криво формируется URL картинки в скрипте? Создайте отдельный скрипт из одной строки, напишите туда то, что я написал в ответе и проверьте.
Arti Markelov: очевидно дело в этой функции file_get_contents, возможно она запрещена на вашем хостинге, но ошибка не выводится... После вызова этой функции код будет выполняться, если дописать какое-нибудь echo простое?
Дмитрий: Потом можно с этими же хешами фиксировать операции (продана, пришла на склад, ушла со склада) вместе с датой и делать выборки любые... Правда, вижу уже затруднение: если нужно будет фильтрануть все майки Metallica, размера L и всех цветов. Тогда проблема...
Сергей: я бы попробовал через хеши свойств. Примерно так: таблица goods (id, title); таблица good_instances (good_id, options_hash, qty, warehouse_id). Warehouse_id - id склада из таблицы складов. А options_hash можно генерить примерно так md5 от строки option1:value;option2:value, где ключи option1, option2 отсортированы по алфавиту. Как идея, конечно... Может и не лучший вариант
Если файл не создается, значит нет прав записи на директорию, где лежит скрипт (в случае запуска из браузера, файл будет создаваться в той же директории). Если права на запись есть, то файл должен быть создан в любом случае, только пустой будет. Чтобы проверить, что отдает file_get_contents - сделайте вывод перед записью.