[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: .txt как база данных
denlam
Задача слудующая:
На сайте есть такой блок, куда random должен выводится один из отзывов в базе. Из-за такой мелкой фигни не хочу базу отдельную в mysql делать. решил хранить в файле инфу.
Нужно хранить Имя и Текст отзыва. Никогда не использовал txt как бд поэтому у меня в голове два варианта:
1) хранить каждый отзыв в отдельном файле но в одной папке и делить его методом "имя|текст", но тогда возникает вопрос как открывать случайный файл в папке?
2) хранить все отзывы в одном файле и хранить методом, например, "имя|текст\nимя|текст". Тогда если я хочу вытащить один отзыв, то нужно открыть файл, разделить и расфасовать внутрь одного массива, например обращаться mas[i][text] и mas[i][name] И выбрать в принципе легко уже рэндомом там. Тут вопрос заключается в другом: как удобно удалять через админку один из отзывов (он же вообще где-то в середине файла хранится)

Эксперты, подскажите какой вариант лучше выбрать или предложите свой алгоритм решения.
p.s. еще раз напоминаю, мы должны смочь достать, добавить, редактировать и удалить отзыв из файловой бд.
Placido
Тут вопрос в третьем. Почему в БД не хранить? Если очень хочется хранить в именно в файле - есть SQLite, она таблицы в файлах хранит.
denlam
Цитата (Placido @ 27.12.2012 - 17:09)
Тут вопрос в третьем. Почему в БД не хранить? Если очень хочется хранить в именно в файле - есть SQLite, она таблицы в файлах хранит.

Мне надо сделать и потом на другой хостинг переносить. Желательно без БД. именно в файле. Никаких библиотек подключать тоже не хочется лишних.
kaww
Если на файлах принципиально, то файлы именовать как 0, 1, 2 ... n, соответственно получить случайный файл rand(0, n)
denlam
Цитата (kaww @ 27.12.2012 - 17:13)
Если на файлах принципиально, то файлы именовать как 0, 1, 2 ... n, соответственно получить случайный файл rand(0, n)

Ну тут проблема в чем. Допустим у нас есть файлы 1...6, а потом удалили 4.txt. тогда у нас остаюстя файлы 1 2 3 5 6 и тут rand(1,n) никак не прет
VolodinAS
Работал я с такой штукой. Могу тебе за определенную скромную сумму всё организовать.
kaww
$path = '/somepath/';
$dir = dir($path);
$files = array();
while (($f = $dir->read())) {

if (is_file($path . $f)) {

$files[] = $f;
}
}

if (!$files) {

die('empty dir');
}
echo file_get_contents($path . $files[rand(0,count($files))]);
denlam
Цитата (VolodinAS @ 27.12.2012 - 17:20)
Работал я с такой штукой. Могу тебе за определенную скромную сумму всё организовать.

http://vk.com/denlam стукни ВК
Xes
Храни в виде массива, который просто в дальнейшем подключается.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.