X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Помогите сопоставить дату сервера и событие из базы данных
werd_34
werd_34
Topic Starter сообщение 3.4.2013, 1:10; Ответить: werd_34
Сообщение #1


Необходимо выводить знаменательные даты, праздники и т.д. Как ни бьюсь, не получается сопоставить переменные дат сервера и мои из базы данных. Помогите, пожалуйста!

<?php
$db_host = 'localhost';
$db_user = 'root';
$db_pass = '';
$db = 'kalendar';
mysql_connect($db_host, $db_user, $db_pass) or die("No connect to server");
mysql_select_db($db) or die("No select DB");
mysql_query("SET NAMES 'utf8'") or die("Can't set charset");

$res = mysql_query("SELECT * FROM `history` WHERE `id` = '{$id}'");
$row = mysql_fetch_assoc($res);
$day = $row['day'];
$mount = $row['mount'];
$year = $row['year'];
$event = $row['event'];

$tday = date("d");
$tmount = date("m");
if($day = $tday and $mount = $tmount){
    echo $event;
} else echo 'Событий нет!';
?>

Эскизы прикрепленных изображений
Прикрепленное изображение
 
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 3.4.2013, 22:53; Ответить: yury_mw
Сообщение #2


werd_34,
для начала исправьте проверку на равенство:
так неправильно
if($day = $tday and $mount = $tmount){

так правильно
if($day == $tday and $mount == $tmount){

если это не поможет, потрассируйте (например, с помощью echo сразу после присваивания), что у вас попадает из БД в переменные $day и $mount и похожи ли эти строки на то, что возвращают date("d") и date("m")
$day = $row['day'];
$mount = $row['mount'];

$tday = date("d");
$tmount = date("m");
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
werd_34
werd_34
Topic Starter сообщение 4.4.2013, 0:45; Ответить: werd_34
Сообщение #3


Всё перепробовал, проверка на равенство не помогает, из базы по условию ничего не выводит
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
isvetlichniy
isvetlichniy
сообщение 4.4.2013, 0:50; Ответить: isvetlichniy
Сообщение #4


из базы по условию ничего не выводит

а ничего и не выведет
$res = mysql_query("SELECT * FROM `history` WHERE `id` = '{$id}'");

ты здесь используешь переменную $id, но не присваиваешь ей никакого значения
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
werd_34
werd_34
Topic Starter сообщение 4.4.2013, 3:23; Ответить: werd_34
Сообщение #5


Спасибо за корректировку действий, начальный этап получился. Подскажите, как подсчитать сколько лет прошло от события. "Сегодня 240 лет со дня основания..."
В какую сторону думать?

$tday = date("d.m");
$res = mysql_query("SELECT * FROM `history` WHERE `day` = '{$tday}'");
$row = mysql_fetch_assoc($res);
$day = $row['day'];
$event = $row['event'];
if($day == $tday ){
    echo $event;
} else echo 'Событий нет!';
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 4.4.2013, 9:49; Ответить: yury_mw
Сообщение #6


Спасибо за корректировку действий, начальный этап получился. Подскажите, как подсчитать сколько лет прошло от события. "Сегодня 240 лет со дня основания..." В какую сторону думать?
Вот тут Расчет сколько лет, зная дату рождения писал похожий пример.
<html>
<body>
<?php
//вычисляет сколько лет прошло с заданной даты
//формат даты: дд-мм-гггг или дд.мм.гггг или дд/мм/гггг
function age($birth_date){
$birth = preg_split ('/[/.-]/', $birth_date);
$now = getdate();
$age = $now['year'] - $birth[2];
if($now['mon'] < $birth[1])
  $age--;
if($now['mon'] == $birth[1])
  if($now['mday'] < $birth[0])
   $age--;
return $age;
}
//выводит строку "год"/"года"/"лет" в зависимости от числового значения возраста, например: "22 года" или "45 лет"
function s_years($age){
$age = abs($age);
$t1 = $age % 10;
$t2 = $age % 100;
return ($t1 == 1 && $t2 != 11 ? "год" : ($t1 >= 2 && $t1 <= 4 && ($t2 < 10 || $t2 >= 20) ? "года" : "лет"));
}
$s_bdate = "25.08.1530";
$age = age($s_bdate);
echo "Если бы Иван Грозный, родившийся $s_bdate, не умер, то сейчас ему было бы $age " . s_years($age);
$s_bdate = "26-08-1828";
$age = age($s_bdate);
echo "<br>Лев Толстой родился $s_bdate. Это было $age " . s_years($age) . " назад.";
$s_bdate = "13/11/1729";
$age = age($s_bdate);
echo "<br>А. В. Суворов — великий русский полководец, не потерпевший ни одного поражения в своей военной карьере, родился $s_bdate. С тех пор прошло $age " . s_years($age);
?>
</body>
</html>

Думайте в эту сторону.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
isvetlichniy
isvetlichniy
сообщение 4.4.2013, 10:09; Ответить: isvetlichniy
Сообщение #7


вот тебе еще статья по работе с датой
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
werd_34
werd_34
Topic Starter сообщение 4.4.2013, 12:35; Ответить: werd_34
Сообщение #8


Спасибо огромное, yury и isvetlichniy! Ушёл в чтение!!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
werd_34
werd_34
Topic Starter сообщение 4.4.2013, 15:24; Ответить: werd_34
Сообщение #9


Вот что (СПАСИБО ОГРОМНОЕ yury :mellow: ) у меня получилось! Даты выводятся, скрипт считает годы.
Но проблема осталась - как вывести на один день насколько событий одновременно и показать события вчера... завтра...

$tday = date("d.m");
$res = mysql_query("SELECT * FROM `history` WHERE `day` ='{$tday}' LIMIT 3") or die(mysql_error());
$row = mysql_fetch_assoc($res);
$day = $row['day'];
$year = $row['year'];
$event = $row['event'];
//вычисляет сколько лет прошло с заданной даты
//формат даты: дд-мм-гггг или дд.мм.гггг или дд/мм/гггг
function age($birth_date){
$birth = preg_split ('/[\/.-]/', $birth_date);
$now = getdate();
$age = $now['year'] - $birth[2];
if($now['mon'] < $birth[1])
  $age--;
if($now['mon'] == $birth[1])
  if($now['mday'] < $birth[0])
   $age--;
return $age;
}
//выводит строку "год"/"года"/"лет" в зависимости от числового значения возраста, например: "22 года" или "45 лет"
function s_years($age){
$age = abs($age);
$t1 = $age % 10;
$t2 = $age % 100;
return ($t1 == 1 && $t2 != 11 ? "год" : ($t1 >= 2 && $t1 <= 4 && ($t2 < 10 || $t2 >= 20) ? "года" : "лет"));
}
if($day == $tday ){
    echo $event."<br/>";
$s_bdate = $year;
$age = age($s_bdate);
echo "Данное событие произошло $s_bdate. Это было $age " . s_years($age) . " назад.<br/>";
} else echo 'Событий нет!';

Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
werd_34
werd_34
Topic Starter сообщение 5.4.2013, 9:12; Ответить: werd_34
Сообщение #10


Вывел на один день насколько событий одновременно циклом

if(mysql_num_rows($res) > 0){
while($row = mysql_fetch_assoc($res)){
$count = mysql_num_rows($res);
$day = $row['day'];
$year = $row['year'];
$event = $row['event'];
$s_bdate = $year;
$age = age($s_bdate);
echo "<table><tr><td>".$day. "</td><td>".$event. "</td>";
echo "<td>Данное событие произошло $s_bdate. Это было $age " . s_years($age) . " назад.<br/></td></tr></table>";      
}
}else echo 'Событий нет!';


Осталось вывести "Вчера...", "Завтра...." Подскажите направление. Спасибо всем.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Базы Youtube кейвордов с данными по конкуренции и Volume
6 Krok 1577 Сегодня, 5:43
автор: Krok
Горячая тема (нет новых ответов) Hyper.hosting - сервера под любые задачи [разрешены dmca, гэмблинг, адалт и пр.]
Лучшие сервера по доступной цене
32 Hyper_Hosting 9158 15.4.2024, 13:03
автор: Hyper_Hosting
Открытая тема (нет новых ответов) Большие базы Semrush кейвордов по разным тематикам! Много кейвордов с трафиком и без конкуренции! Volume, KD, CPC
22 Krok 6755 12.4.2024, 5:17
автор: Krok
Открытая тема (нет новых ответов) Интеграция спортивных данных API. Коэффициенты БК, Live результаты
15 yaroslav89 6860 8.4.2024, 17:17
автор: spoyer_ru
Горячая тема (нет новых ответов) Свежие базы ключевых слов с подсказок гугла!
125 Krok 68523 7.4.2024, 4:52
автор: Krok


 



RSS Текстовая версия Сейчас: 23.4.2024, 15:47
Дизайн