1.Логически должно быть так, при регистрации юзер2, проверяется его номер телефона, если этот номер уже имеется то у юзер1(текущего пользователя номера) сегодняшняя дата ставится как dod. Т.е. doa юзера2 = dod юзера1
2. Теперь зачем нужна функция getdate. При помощи неё планируется сделать следующее: Когда заходит пользователь ему выводится вся информация по звонкам с его номера
SELECT*FROM Calls WHERE phone_number=$_SESSION[phone_number]
Но как сделать так, чтобы выводился не весь список звонков, а только за прошлый месяц и с учётом даты регистрации этого пользователя. Допустим я зашёл в апреле, так как апрель ещё не закончился, то звонки есть только за март. Значит мне должны отобразиться только звонки за весь март, но не раньше моей даты регистрации.
Извиняюсь если непонятно, просто голова кипит, уже даже собственные мысли понять сложно.
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007 Откуда: Симферополь
Помог: 98 раз(а)
McLotos имхо date_of_call и time_of_call у вас смиксованы по типам. Зачем? Проще UNIX_TIMESTAMP и при выборке делать DATE(datetime_field) и TIME(datetime_field) соответственно.
1 пункт не вижу ничего сложного.
//SELECT * FROM `table` WHERE `datetime_field`>$date-INTERVAL 1 MONTH
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
McLotos
Отправлено: 05 Мая, 2011 - 15:34:50
Гость
Покинул форум
Сообщений всего: 67
Дата рег-ции: Март 2011
Помог: 0 раз(а)
Не совсем понял. Т.е. логически я понимаю что вы имеете ввиду, но я думал должно быть что-то типа
1.UPDATE `Users` SET `dod` = ( REPLACE ( dod, '0000-00-00', 'сегодняшнее число' ) ) WHERE phone_number=$_SESSION[phone_number]
Т.е. в процессе регистрации нового пользователя, dod старого пользователя заменяется с 0000-00-00 на сегодняшнее число.
Viper пишет:
логично что если юзер зарегался в апреле, то звонков за март у него в теории не должно быть
Не совсем так. Наличие звонков сканируется запросом Select * from Calls Where phone_number=$_SESSION[phone_number], здесь не учитывается дата регистрации, а просто отбираются все звонки с этого номера, а звонки могут быть ещё до появления пользователя в базе. Собственного говоря поэтому и нужен запрос заменяющий dod при регистрации нового пользователя с тем же номером. Можно было бы конечно просто удалять старого пользователя, но проблема в том что статистика всех номеров должна храниться минимум год. Следовательно, если новый пользователь заходит на страницу звонков, то он видит абсолютно все звонки, даже до дня собственной регистрации, хотя...
Select * from Calls where phone_number=$_SESSION[phone_number] and date_of_call>=$_SESSION[doa], наверное как-то так.
EuGen
или я не прав? Подскажи, плиз
$result = mysql_query("SELECT `id` FROM `users` WHERE login='$login'");
$myrow = mysql_fetch_array($result);
if (!empty($myrow['id'])) {
$page.='Sorry, you entered username is already registered. Please enter a different username.<br>';
} else {
// если такого нет, то сохраняем данные
$query = "INSERT INTO `users` (lastname,firstname,email,login,password,business_unit,phone_number,post_id,dostup,reminder,doa,dod)
VALUES ('$lastname','$firstname','$email','$login','$password','$business_unit','$phone_number','$post_id','$dostup','$reminder','$doa','$dod')";
if(mysql_query($query))
{ $page.="<p class='soob' style='color:green'>Thanks. Registration is complete.</p>";}
else { $page.='Error! You are not registered.<br>';}
}
А вот так я определяю текущую дату, вывожу её пользователю и ставлю её в поле Дата регистрации
<?php
$d=date('Y-m-d [h:i]');
echo "Текущая дата и время на сервере: $d";
?><p>
<label for="doa">Date</label>
<input type="text" name="doa" value="<?=date('y-m-d');?>" id="doa" AUTOCOMPLETE=ON />
<br><sup>The date of receipt numbers</sup>
</p>
Покинул форум
Сообщений всего: 40
Дата рег-ции: Май 2011
Помог: 0 раз(а)
EuGen пишет:
$date=date('Y-m-d H:i:s');
//SELECT * FROM `table` WHERE `datetime_field`>$date-INTERVAL 1 MONTH
Как я понимаю $date-INTERVAL 1 MONTH это уменьшает дату, которая в сессии на 1 месяц, а можно сделать как-то так. Сканировать таблицу, найти последний месяц, и вывести все данные за последний месяц, имеющийся в таблице?
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.