TeTRos
В каком формате хранится дата в мускуле?
21. TvoyWeb - 04 Декабря, 2006 - 08:59:43 - перейти к сообщению
22. TeTRos - 04 Декабря, 2006 - 09:01:02 - перейти к сообщению
Ну пока в виде yyyy-mm-dd
23. TvoyWeb - 04 Декабря, 2006 - 09:42:03 - перейти к сообщению
TeTRos
тогда попробуй так:
Я тебе давал вроде ссылку на мануал по мускулу лично я сам все это не могу помнить назубок и довольно часто обращаюсь к ману, как в мускулу так и в пхп
тогда попробуй так:
CODE:
// Чтение данных из БД
$today = date("m-d");
$query = "SELECT id, about, autor, email, data FROM thisday_list WHERE TIME_FORMAT(data,"%m-%d")='".$today."'ORDER BY data ASC";
//Сортировка: ACS - по возрастанию DESC - по убыванию//
$today = date("m-d");
$query = "SELECT id, about, autor, email, data FROM thisday_list WHERE TIME_FORMAT(data,"%m-%d")='".$today."'ORDER BY data ASC";
//Сортировка: ACS - по возрастанию DESC - по убыванию//
Я тебе давал вроде ссылку на мануал по мускулу лично я сам все это не могу помнить назубок и довольно часто обращаюсь к ману, как в мускулу так и в пхп
24. TeTRos - 04 Декабря, 2006 - 12:30:26 - перейти к сообщению
Вот, первые плоды!!!
На практике всё работает, но хотелось бы знать ваше мнение о правильности кода
На практике всё работает, но хотелось бы знать ваше мнение о правильности кода
CODE:
<html>
<head>
<title>События на сегодня</title>
</head>
<body>
<?
// Настройки БД
$db = 'calendar';
$dbuser = 'root';
$dbpass = '';
$dbhost = 'localhost';
// Соединение с БД
mysql_connect($dbhost,$dbuser,$dbpass) or die("Не могу соединиться");
mysql_select_db("$db") or die("Не могу найти БД");
// Чтение данных из БД
$today = date("d.m");
$query = "SELECT id, about, autor, email, data FROM thisday_list WHERE DATE_FORMAT(data,'%d.%m')= ".$today." ORDER BY data ASC";
//Сортировка: ACS - по возрастанию DESC - по убыванию//
$result = mysql_query($query) or die(mysql_error());
?>
<table border="0" cellspacing="1" cellpadding="1" align="center">
<tr>
<td>
<ul>
<?
// если таблица не пустая, то выводим на экран события
if (mysql_num_rows($result) != 0) {
while ($row = mysql_fetch_assoc($result)) {
$nowyear = date("Y");
$eventyear = substr($row['data'],0,4);
$resultyear = $nowyear - $eventyear;
echo '<li>';
echo $row['about'];
if ($resultyear > 0) {
echo '. <strong>'.$resultyear.'-ая</strong> годовщина.';
}
echo ' <em>(Добавил - <a href=mailto:'.$row['email'].'>'.$row['autor'].'</a>)</em>;';
}} else {
echo 'На сегодня знаменательных дат нет!';}
?>
</td>
</tr>
</table>
</body>
</html>
<head>
<title>События на сегодня</title>
</head>
<body>
<?
// Настройки БД
$db = 'calendar';
$dbuser = 'root';
$dbpass = '';
$dbhost = 'localhost';
// Соединение с БД
mysql_connect($dbhost,$dbuser,$dbpass) or die("Не могу соединиться");
mysql_select_db("$db") or die("Не могу найти БД");
// Чтение данных из БД
$today = date("d.m");
$query = "SELECT id, about, autor, email, data FROM thisday_list WHERE DATE_FORMAT(data,'%d.%m')= ".$today." ORDER BY data ASC";
//Сортировка: ACS - по возрастанию DESC - по убыванию//
$result = mysql_query($query) or die(mysql_error());
?>
<table border="0" cellspacing="1" cellpadding="1" align="center">
<tr>
<td>
<ul>
<?
// если таблица не пустая, то выводим на экран события
if (mysql_num_rows($result) != 0) {
while ($row = mysql_fetch_assoc($result)) {
$nowyear = date("Y");
$eventyear = substr($row['data'],0,4);
$resultyear = $nowyear - $eventyear;
echo '<li>';
echo $row['about'];
if ($resultyear > 0) {
echo '. <strong>'.$resultyear.'-ая</strong> годовщина.';
}
echo ' <em>(Добавил - <a href=mailto:'.$row['email'].'>'.$row['autor'].'</a>)</em>;';
}} else {
echo 'На сегодня знаменательных дат нет!';}
?>
</td>
</tr>
</table>
</body>
</html>
25. TvoyWeb - 04 Декабря, 2006 - 22:15:09 - перейти к сообщению
А если так:
CODE:
<html>
<head>
<title>События на сегодня</title>
</head>
<body>
<?
// Настройки БД
$db = 'calendar';
$dbuser = 'root';
$dbpass = '';
$dbhost = 'localhost';
// Соединение с БД
mysql_connect($dbhost,$dbuser,$dbpass) or die("Не могу соединиться");
mysql_select_db("$db") or die("Не могу найти БД");
// Чтение данных из БД
$today = date("d.m");
$nowyear = date("Y");
$query = "SELECT id, about, autor, email, YEAR(`date`)-".$nowyear." AS `howyear`, data FROM thisday_list WHERE DATE_FORMAT(data,'%d.%m')= ".$today." ORDER BY data ASC";
//Сортировка: ACS - по возрастанию DESC - по убыванию//
$result = mysql_query($query) or die(mysql_error());
?>
<table border="0" cellspacing="1" cellpadding="1" align="center">
<tr>
<td>
<ul>
<?
// если таблица не пустая, то выводим на экран события
if (mysql_num_rows($result) != 0) {
while ($row = mysql_fetch_assoc($result)) {
echo '<li>';
echo $row['about'];
if (intval($row['howyear']) > 0) {
echo '. <strong>'.$row['howyear'].'-ая</strong> годовщина.';
}
echo ' <em>(Добавил - <a href=mailto:'.$row['email'].'>'.$row['autor'].'</a>)</em>;';
}} else {
echo 'На сегодня знаменательных дат нет!';}
?>
</td>
</tr>
</table>
</body>
</html>
<head>
<title>События на сегодня</title>
</head>
<body>
<?
// Настройки БД
$db = 'calendar';
$dbuser = 'root';
$dbpass = '';
$dbhost = 'localhost';
// Соединение с БД
mysql_connect($dbhost,$dbuser,$dbpass) or die("Не могу соединиться");
mysql_select_db("$db") or die("Не могу найти БД");
// Чтение данных из БД
$today = date("d.m");
$nowyear = date("Y");
$query = "SELECT id, about, autor, email, YEAR(`date`)-".$nowyear." AS `howyear`, data FROM thisday_list WHERE DATE_FORMAT(data,'%d.%m')= ".$today." ORDER BY data ASC";
//Сортировка: ACS - по возрастанию DESC - по убыванию//
$result = mysql_query($query) or die(mysql_error());
?>
<table border="0" cellspacing="1" cellpadding="1" align="center">
<tr>
<td>
<ul>
<?
// если таблица не пустая, то выводим на экран события
if (mysql_num_rows($result) != 0) {
while ($row = mysql_fetch_assoc($result)) {
echo '<li>';
echo $row['about'];
if (intval($row['howyear']) > 0) {
echo '. <strong>'.$row['howyear'].'-ая</strong> годовщина.';
}
echo ' <em>(Добавил - <a href=mailto:'.$row['email'].'>'.$row['autor'].'</a>)</em>;';
}} else {
echo 'На сегодня знаменательных дат нет!';}
?>
</td>
</tr>
</table>
</body>
</html>
26. TeTRos - 05 Декабря, 2006 - 14:02:34 - перейти к сообщению
CODE:
if (intval($row['howyear']) > 0)
А это типа "если модуль года больше нуля, то выполняем"???
27. TvoyWeb - 05 Декабря, 2006 - 21:47:19 - перейти к сообщению
CODE:
YEAR(`date`)-".$nowyear." AS `howyear`
Здесь $nowyear текущий год вычисленный выше по скрипту. А само выражение читается примерно так: выбрать разницу года в поле таблицы и значения текущего года и вернуть результат под именем howyear. То есть
CODE:
if (intval($row['howyear']) > 0)
Если знаменательная дата произошла в этом году, то никакой годовщины нет, а следовательно и выводить не надо. Собственно я ничего здесь не придумал, я просто заменил твою переменную в этом выражении.
28. TeTRos - 06 Декабря, 2006 - 08:29:56 - перейти к сообщению
Спасибо за разьяснение! Действительно этот вариант удобнее!
29. TeTRos - 07 Декабря, 2006 - 03:48:59 - перейти к сообщению
Скажите, а как можно организовать антибот-защиту??? Может быть имеются готовые скрипты???
30. TvoyWeb - 07 Декабря, 2006 - 08:36:21 - перейти к сообщению
TeTRos
Смотря от каких ботов защищаться. Если от тех которые регаются и пишут, то ИМХО лучшая но не последняя защита это хорошая captcha
Смотря от каких ботов защищаться. Если от тех которые регаются и пишут, то ИМХО лучшая но не последняя защита это хорошая captcha