Xwab
Форумыnavigate_nextНебольшие вопросы по PHP/MySQL

Как записать в базу рандомные записи
Сообщения
шизофф

т.е есть файл, в файле есть разные записи по порядку например

Запись 1
Запись 2
Запись 3
Запись 4
Запись 5

мне нужно записать ети записи в базу попорядку, т.е я ставлю скрипт на крон и когда он запускается записуются в базу всегда разные записи, например при первом запуске записалось

Запись 2
Запись 5
Запись 1

а при втором

Запись 4
Запись 5
Запись 1

как такое сделать?

11 Янв 2013, 18:12
TOOZ

Ну например строки файла загоняешь в массив, а потом записываешь в базу строки с рандомным идентификатором.

11 Янв 2013, 18:17
шизофф

TOOZ, Можешь написать маленький примерчик? я как то не очень умею с файлами работать.

11 Янв 2013, 18:19
TOOZ

$strs = file('file.txt');
$max = count($strs);
$rand = rand(0, $strs);
echo $strs[$rand];
добавлено спустя 2 минуты:
Или shuffle($strs); и твой массив строк уже будет размещен в случайной последовательности и просто заноси в БД по порядку.

11 Янв 2013, 18:24
шизофф

а как сделать еще чтоб записи не повторялись?

11 Янв 2013, 18:34
TOOZ

shuffle'ом лучше пользуйся.
$strs = file('file.txt');
shuffle($strs);
а дальше for'ом или любым другим циклов последовательно выводи (вернее записывай в БД). Записи уже рандомно, без повтора отсортированы.

11 Янв 2013, 18:36
шизофф

TOOZ, Спасибо

11 Янв 2013, 18:40
Golodnyi


function getRandStr()
{
    $file = file_get_contents('file.txt');
    $arr = explode($file, "\n");
    $rnd = $arr[rand(0, count($arr))];
    return $rnd;
}

$rnd писать в базу, если надо уникальную запись, то как вариант проверять в бд есть ли такая запись, если есть, то вызывать функцию которую рекурсивно, пока не запишет то, чего нет в БД.

12 Янв 2013, 14:49
Ответить на тему