Вопрос № 48438: Внимание-вопрос: как средствами php выполнить автозаполнение формы в интернет?...Вопрос № 48498: Здравствуйте товаритщи эксперты!!! Возник вопрос, как из MySQL таблицы вытащить случайную запись, из получаемых по условию? Тоесть есть sql запрос "SELECT * FROM table WHERE status = 0", он возвроащает несколько записей, как вывести случайн...
Вопрос № 48.438
Внимание-вопрос: как средствами php выполнить автозаполнение формы в интернет?
Отвечает: PVS
Здравствуйте, Ильин Игорь Анатольевич!
Надо знать какой запрос отправляет каждая конкретная форма и отправлять запрос той же структуры по тому же адресу
Ответ отправил: PVS (статус: 7-ой класс)
Ответ отправлен: 07.07.2006, 10:03
Отвечает: Zysoftik
Здравствуйте, Ильин Игорь Анатольевич!
Само автозаполнение на PHP выполнить невозможно, т.к. сохранение данных и автозаполнение реализуется браузером.
Однако, можно предложить такой способ:
При заполнении форм, несекретные данные заносить в куки, а при генерации формы выводить ее уже с параметрами, вынутыми из куков.
Например, если из куков достали $login, тогда пишем
Ответ отправил: Zysoftik (статус: 5-ый класс)
Ответ отправлен: 07.07.2006, 13:42 Оценка за ответ: 3
Вопрос № 48.498
Здравствуйте товаритщи эксперты!!! Возник вопрос, как из MySQL таблицы вытащить случайную запись, из получаемых по условию? Тоесть есть sql запрос "SELECT * FROM table WHERE status = 0", он возвроащает несколько записей, как вывести случайную? Зранее благодарен.
Отвечает: Марк Крейн
Здравствуйте, Антонов Никита Вячеславович!
Нужно подсчитать кол-во полученных записей (функция mysql_num_rows()). Потом запустить настроить генератор случайных чисел, например так: (mt_srand(time()) и запустить его примерно так:
$f=mt_rand(1, $a) где $a - число записей, полученных в результате выполнения запроса.
В итоге будет сгенерировано некоторое число в промежутке от 1 до кол-ва выведенных записей. Далее следует ещё один запрос уже на вывод "случайной" записи:
select * from table where id='$f'
и его обработка соответствующими функциями php.
Ответ отправил: Марк Крейн (статус: 8-ой класс)
Ответ отправлен: 07.07.2006, 22:53
Отвечает: Cimus
Здравствуйте, Антонов Никита Вячеславович!
изначально надо узнать количество строк в таблице и их индетификатор
// id - порядковый номер записи
$zapros_count="SELECT `id` FROM `table` WHERE status = 0 ";
if(!($bdresult = @mysql_query($zapros_count , $bdlink)))
{
print 'error';
exit;
}
else
{
while($temp=mysql_fetch_assoc($bdresult))
{
$id[].=$temp['id'];//получили массив с идентификаторов
}
}
теперь надо выбрать случайную запись из возможной
$idd=$id[rand(1,count($id))];
Ну а теперь осталось получить саму запись
SELECT * FROM table WHERE id=$idd
Вот и всё ))
--------- Достичь можно любых высот !
Ответ отправил: Cimus (статус: 5-ый класс)
Ответ отправлен: 07.07.2006, 23:10 Оценка за ответ: 5
Отвечает: XMF
Здравствуйте, Антонов Никита Вячеславович!
--
все ответы потенциально неправильны...
Допустим у вас есть таблица и
id=1
id=4
id=8
--
получаете вы количество... 3 рандомите.. получам допустим 2... теперь пишим "...where id=3" и... пусто..
предлагаю так:
--------------------
1. Получаем количество строк.
2. Рендомим... получаем случайное число от 1-(количество-1)
3. Запрос: Select * from ... limit [rand], 1
=-=-=-=-=
вотъ
Ответ отправил: XMF (статус: 6-ой класс)
Ответ отправлен: 08.07.2006, 00:08
Отвечает: Stamm
Здравствуйте, Антонов Никита Вячеславович!
Сначала генерируешь случайное число от 1 до кол-ва записей:
$nom=mt_rand(1,mysql_result(mysql_query("SELECT COUNT(*) FROM table WHERE status = 0"),0,0);
А потом делаешь запрос:
"SELECT * FROM table WHERE status = 0 LIMIT $nom,1"
Ответ отправил: Stamm (статус: Студент)
Ответ отправлен: 08.07.2006, 09:54 Оценка за ответ: 2
Отвечает: PVS
Здравствуйте, Антонов Никита Вячеславович!
SELECT * FROM table WHERE status = 0 order by md5(current_timestamp+id) limit 1
current_timestamp - чтобы каждый раз результат был разным, id - чтобы записи отличались, так как timestamp скорее всего будет одинаковым (если таблица не громадная)
Ответ отправил: PVS (статус: 7-ой класс)
Ответ отправлен: 10.07.2006, 10:10
Отвечает: Alexey Vilchinsky
Здравствуйте, Антонов Никита Вячеславович!
сначала вытаскиваете все записи по запросу и заталкиваете их в массив, например $ar
затем делаете
$i=rand(0,count($ar)-1);
echo $ar[$i]
--------- Делая людям добро, мы возвращаем его многократно...
Ответ отправил: Alexey Vilchinsky (статус: 10-ый класс)
Ответ отправлен: 10.07.2006, 10:12