Можно взять уже существующий запрос, но все равно придется менять формат вывода данных (не думаю, что вам нужна для импорта html-верстка). Можно сделать и внутри имеющегося скрипта, главное, потом не запутаться в коде (т.к. он разрастется из-за дополнительных настроек и условий).
Ссылка должна вести на обычный php-скрипт. Код этого файла я привел выше.
Результат вашего sql-запроса нужно поместить в переменную $rec (если смотреть на код выше).
В результате, при переходе по ссылке на этот php-скрипт пользователю будет предложено сохранить файл с названием $filename.csv (имя можно сформировать самому, см. заголовки), в качестве содержимого будут данные из $rec. Все достаточно просто, с остальным можно поэкспериментировать:)
Если так же утрированно - то формировать заголовки и содержимое, аналогичное обычному скачиванию файла. Вот, например, для csv (выдернул из контекста):
Максим Концепция, это не влияет на кодировку, в которой хранятся данные. Да и потом, вместо этих команд можно написать SET NAMES 'utf8'; - это в общем-то аналогично. Но меняет параметры подключения, а не кодировку данных.
в какой кодировке таблицы в базе? Какая кодировка используется при подключении?
Возможно, база создалась в какой-нибудь кривой кодировке (типа latin1, дефолтная ненастроенная кодировка), а скрипт жестко вытаскивает данные в кириллице (SET NAMES 'cp1251'), в общем, проблема где-то рядом:)
UPD: перечитал исходник - проблема действительно с кешем, я описал решение проблемы с кодировкой... :)
Можно взять уже существующий запрос, но все равно придется менять формат вывода данных (не думаю, что вам нужна для импорта html-верстка). Можно сделать и внутри имеющегося скрипта, главное, потом не запутаться в коде (т.к. он разрастется из-за дополнительных настроек и условий).
Ссылка должна вести на обычный php-скрипт. Код этого файла я привел выше.
Результат вашего sql-запроса нужно поместить в переменную $rec (если смотреть на код выше).
В результате, при переходе по ссылке на этот php-скрипт пользователю будет предложено сохранить файл с названием $filename.csv (имя можно сформировать самому, см. заголовки), в качестве содержимого будут данные из $rec. Все достаточно просто, с остальным можно поэкспериментировать:)
Если так же утрированно - то формировать заголовки и содержимое, аналогичное обычному скачиванию файла. Вот, например, для csv (выдернул из контекста):
в переменную $rec можно запихнуть что угодно, что собственно и будет составлять контент файла.
PS: не претендую на абсолютную правильность, да и коду уже лет 5, но вроде до сих пор работает:)
дубль сообщения
Без. (линк на mysql.com)
Сопоставление - необязательный параметр, можно ничего не писать, т.е. вот так:
блин, не заметил про перл:)
например, iconv
Максим Концепция, это не влияет на кодировку, в которой хранятся данные. Да и потом, вместо этих команд можно написать SET NAMES 'utf8'; - это в общем-то аналогично. Но меняет параметры подключения, а не кодировку данных.
перекодировать данные из utf в cp1251
Например:
Надежнее всего - сделать дамп, в нем автозаменой поменять у таблиц кодировку. Код будет выглядеть примерно так:
Нужно поменять cp1251 на нужное значение (utf8, например), и закачать обратно дамп.
Можно и без дампа (начиная с версии 4.1):
но через дамп все же надежнее (а может, просто привычнее :) )
в какой кодировке таблицы в базе? Какая кодировка используется при подключении?
Возможно, база создалась в какой-нибудь кривой кодировке (типа latin1, дефолтная ненастроенная кодировка), а скрипт жестко вытаскивает данные в кириллице (SET NAMES 'cp1251'), в общем, проблема где-то рядом:)
UPD: перечитал исходник - проблема действительно с кешем, я описал решение проблемы с кодировкой... :)