|
|
Знаете ли Вы, что ... | |
...инструкция по установке аватара описана в Правилах форума. | |
<< Предыдущий совет - Случайный совет - Следующий совет >> |
Веб программирование Вопросы WEB программирования (Java Script и т.д.) |
Ответить |
|
Опции темы | Опции просмотра |
04.03.2016 00:07 | #1 | ||
Павлин
Сообщений: 2,263
+ 594
458/337
– 1,250
976/401
|
Есть база mysql с таблицей usertbl.
Нужно выбрать из нее случайную 1 запись из поля username. Далее полученное значение записать таблицу uch в поле username значение с выше и в поле date текущую дату. Как реализовать это на php? В гугле нет похожего решения. |
||
|
Ответить |
04.03.2016 08:36 | #2 | |
Сообщений: 3,327
+ 337
892/590
– 3
31/25
|
Цитата:
Надеюсь, не просите написать рабочий код, а только подсказку. :-) Так как, почти ничего не известно о структуре бд, предложу универсальный вариант: 0. будем считать, что кол-во записей не меняется во время операций с бд 1. находим кол-во записей, select count(*) from usertbl 2. используя встроенную функцию php rand($min, $max) (либо mt_rand($min, $max) или других), выберем случайное число $r в диапазоне [1-кол-во записей] 3. делаем выборку из таблицы, select username from usertbl limit $r, 1 4. записываем в таблицу uch, insert into uch(username, date) values($username, current_date) -лучше использовать в качестве названия колонки что-то другое чем date -лучше сделать это в stored procedure в mysql -и т.д.
__________________
404 Not Found |
|
|
Ответить |
04.03.2016 11:25 | #3 |
Павлин
Сообщений: 2,263
+ 594
458/337
– 1,250
976/401
|
<?
$schetchikrow = (mysql_query('SELECT COUNT(*) FROM usertbl;'); $zapros1 = array(); while (count($zapros1) < 1) { $zapros1[] = '(SELECT * FROM usertbl LIMIT '.rand(0, $schetchikrow).', 1)'; } $res = mysql_query($zapros1); mysql_query("insert into uch(username, dennj) values($username, current_date)"); print mysql_query(SELECT *, FROM uch) ?> Накинул такой код, но ничего не происходит. Последний раз редактировалось kelt; 04.03.2016 в 11:39. |
|
Ответить |
04.03.2016 15:03 | #8 |
Павлин
Сообщений: 2,263
+ 594
458/337
– 1,250
976/401
|
Фёдор, шикарный запрос в SQL
INSERT INTO uch (username, dennj) VALUES ((SELECT username FROM usertbl ORDER BY RAND() LIMIT 1), current_date) Только как этот запрос выполнить средствами php? Попробовал это <?php mysql_query("INSERT INTO uch (username, dennj) VALUES ((SELECT username FROM usertbl ORDER BY RAND() LIMIT 1), current_date)"); ?> Ничего не происходит. Соединение с базой есть, но ничего не происходит. Последний раз редактировалось kelt; 04.03.2016 в 15:06. |
|
Ответить |
04.03.2016 15:05 | #9 |
Павлин
Сообщений: 2,263
+ 594
458/337
– 1,250
976/401
|
shumbola, в базе около 120тыс записей. Сама база дала результат через 2 секунды. Случайная выборка будет происходить каждый день в 00,05 по времени сервера, т.е. 1 раз в сутки. Осталось только решить вопрос как это реализовать на php.
|
|
Ответить |
04.03.2016 15:48 | #10 | |
Павлин
Сообщений: 2,263
+ 594
458/337
– 1,250
976/401
|
Код сейчас выглядит так, почему не добавляется случайная запись из таблицы usertbl в таблицу uch?
Сам код Цитата:
|
|
|
Ответить |
|