Пожалуйста, прости меня. Я абсолютный новичок, и мне нужна помощь с этой таблицей в phpmyadmin
Моя таблица имеет следующие столбцы:
Primary_ID, Begin_Date, End_Date, Timestamp
Как обновить в phpmyadmin, выбранные строки со случайным образом созданным begin_dates и меткой времени в пределах заданного диапазона дат (например: 30 дней в месяц). Например, желаемого результата
Primary_id--- Begin_Date -------------Timestamp 1.------------2008-09-02--------------2008-09-02 21:48:09 2.------------2008-09-03--------------2008-09-03 15:19:01 3.------------2008-09-14--------------2008-09-14 01:23:12 4.------------2008-09-27--------------2008-09-27 19:03:59
Диапазон дат между 2008-09-01 и 2008-09-31. Время переменное 24 часа
Я новичок, поэтому синтаксис, который будет работать в phpmyadmin, очень поможет.
Мы делаем презентацию для сайта тренажерного зала с 500 членами, но добавленные значения членов имеют одну и ту же дату и время начала. Попытка разделить их на различные месячные регистрации в базе данных, например, 50 человек, зарегистрированных в августе в разные дни и в разы, 35 человек в октябре и т. Д. Надеюсь, что теперь это ясно. Благодаря –
Когда я попробую один из нижеперечисленных ответов, я получаю эту ошибку: # 1064 – У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '$ randomDate = rand (1,31)' в строке 1. Поэтому в идеале код, который я могу скопировать и вставить в phpmyadmin с минимальным редактированием, будет оценен , По возможности, в последовательности. Для полного манекена понять и выполнить.
Я бы начал с чего-то подобного. Их можно комбинировать, но я разделил его, чтобы вы могли видеть, что я делаю.
Чтобы получить случайные числа, вы можете использовать rand (). Получите один для даты, часа, минуты и секунды.
$randomDate = rand(1,31); $randomHour = rand(1,24); $randomMinute = rand(0,59); $randomSecond = rand(0,59);
Вам понадобятся ведущие нули (03 вместо 3), чтобы вы могли использовать str_pad для их добавления, если это необходимо
$randomDate = str_pad($randomDate, 2, '0',STR_PAD_LEFT); //The '2' is how many characters you want total //The '0' is what will be added to the left if the value is short a character
Сделайте то же самое со всеми вашими другими случайными значениями. Просто потому, что мне нравятся аккуратные запросы, вы должны составить свои последние строки обновлений.
$newDate = '2008-09-'.$randomDate; $newTime = $randomHour.':'.$randomMinute.':'.$randomSecond;
Теперь я не знаю, как вы определяете, какие строки вы хотите обновить, поэтому я оставлю это до вас. Например, я покажу вам запрос, если вы хотите сделать это с помощью Primary_id 3:
$x = mysql_query("UPDATE yourTable SET Begin_Date=\"$newDate\", Timestamp=\"$newTime\" WHERE Primary_id = 3");
что-то вроде:
insert into myTable (begin_date) values date_add('2008-09-01', INTERVAL RAND()*30 DAY)
который должен создать новую строку со случайным begin_date
update myTable set Timestamp = date_add(begin_date, INTERVAL RAND()*1440 MINUTE)
то нужно установить временную метку на случайную минуту того дня.