Сделал на PHP для себя простенькую базу событий с  напоминалкой о них на e-mail. Вполне сойдет как пример для работы в PHP с базой данных.

В качестве базы данных конечно MySQL.

Таблички можно создать вручную через phpMyAdmin, как описано в примере создания опроса на PHP здесь https://ds-release.ru/kak-sdelat-formu-dlya-oprosa-na-php/, но здесь таблички я буду создавать с помощью запросов.

Файл для создания таблиц create.php (его запускаем 1 раз, потом удаляем после создания таблиц).

<?
/* Переменные для соединения с базой данных */
$hostname = "localhost";
$username = "user";
$password = "password";
$dbName = "database";
/* создать соединение */
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
/* выбрать базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error());

$query = "CREATE TABLE count (nn int(20))";
$res = mysql_query($query);

$query = "INSERT INTO count VALUES('0')";
$res = mysql_query($query);

$query = "CREATE TABLE count1 (nn int(20))";
$res = mysql_query($query);

$query = "INSERT INTO count1 VALUES('0')";
$res = mysql_query($query);

$query = "CREATE TABLE usvers (nn int(20), name VARCHAR(240), adres VARCHAR(240))";
$res = mysql_query($query);
$query = "CREATE TABLE sobbit (nn int(20), usver VARCHAR(240), sobit VARCHAR(240), opsobit text(64000), kogda DATETIME)";
$res = mysql_query($query);
/* Закрыть соединение */
mysql_close();

?>

Форма регистрации пользователя add.php

<html>
<head>
<title>Напоминалка по событиям на PHP</title>
<meta https-equiv=”Content-Type” content=”text/html; charset=windows-1251?>
<body>

<P>
<center>
<TABLE WIDTH = 400><TR><TD align = right>
<FORM ACTION="add1.php" METHOD="POST">
E-mail:<BR> <INPUT TYPE="text" NAME="name" SIZE="30" MAXLENGTH="240">
<P>
Пароль:<BR> <INPUT TYPE="text" NAME="adres" SIZE="30" MAXLENGTH="240">

<P>

<INPUT TYPE="submit" VALUE="Добавить">
</FORM>
</TD></TR></TABLE></CENTER>

</center>
</body>
</html>

Заносим в базу логин и пароль  add1.php

<?
/* Этот скрипт получает переменные из add.php */

/* Переменные для соединения с базой данных */
$hostname = "localhost";
$username = "user";
$password = "password";
$dbName = "database";

/* Таблица MySQL, в которой хранятся данные */
$userstable = "count";
/* создать соединение */
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
/* выбрать базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error());
$name = mysql_real_escape_string($name);
$adres = mysql_real_escape_string($adres);
$query = "SELECT * FROM $userstable";
$res1 = mysql_query($query);
while ($row = mysql_fetch_row($res1))
$nn=$row[0]+1;

$query = "UPDATE $userstable SET nn=$nn";
mysql_query($query) or die(mysql_error());

/* Таблица MySQL, в которой хранятся данные */
$userstable = "usvers";
/* создать соединение */
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
/* выбрать базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error());
/* составить запрос для вставки информации о клиенте в таблицу */
$query = "INSERT INTO $userstable VALUES('$nn', '$name','$adres')";
/* Выполнить запрос. Если произойдет ошибка - вывести ее. */
mysql_query($query) or die(mysql_error());
echo "Информация о вас занесена в базу данных.";

/* Закрыть соединение */
mysql_close();
?>

<a href="login.php" >Войти</a>

Зарегистрировались.

Теперь форма ввода логина и пароля login.php

<html>
<head>
<title>Напоминалка по событиям на PHP</title>
<meta https-equiv=”Content-Type” content=”text/html; charset=windows-1251?>
<body>
<P>
<center>
<TABLE WIDTH = 400><TR><TD align = right>
<FORM ACTION="see.php" METHOD="POST">
E-mail:<BR> <INPUT TYPE="text" NAME="name" SIZE="30" MAXLENGTH="240">
<P>
Пароль:<BR> <INPUT TYPE="text" NAME="pass" SIZE="30" MAXLENGTH="240">

<P>

<INPUT TYPE="submit" VALUE="Вход">
</FORM>
</TD></TR></TABLE></CENTER>
<a href="add.php">Регистрация</a>

<P>
<a href="forgot.php">Напомнить пароль</a>
</center>
</body>
</html>

После правильного ввода логина и пароля отображаем список событий  see.php

<html>
<head>
<title>Напоминалка по событиям на PHP</title>
<meta https-equiv=”Content-Type” content=”text/html; charset=windows-1251?>
<link rel="stylesheet" type="text/css" href="tcal.css" />
<script type="text/javascript" src="tcal.js"></script>
</head>
<body>

<?

/* Этот скрипт получает переменные из login.php */

/* Переменные для соединения с базой данных */
$hostname = "localhost";
$username = "user";
$password = "password";
$dbName = "database";
$today = getdate();

$toddi = "$today[year]-$today[mon]-$today[mday]";
$toddi0 = "12:00";

$date = $_POST['date'];

$userstable = "usvers";

/* создать соединение */
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
/* выбрать базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error());
$query = "SELECT * FROM $userstable WHERE name = '".$name."' and adres = '".$pass."' ";
$res = mysql_query($query) or die(mysql_error());

$name = mysql_real_escape_string($name);
$adres = mysql_real_escape_string($adres);

$number1 = mysql_num_rows($res);

if ($number1 == 0) {
echo 'Пользователь '.$name." не найден либо пароль не верен!<BR><BR>";
} else {

echo 'Записи пользователя '.$name."<BR><BR>";
/* Таблица MySQL, в которой хранятся данные */
$userstable = "sobbit";
/* создать соединение */
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
/* выбрать базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error());

$query = "SELECT * FROM $userstable WHERE usver = '".$name."' ";
$res = mysql_query($query) or die(mysql_error());

/*получаем строки из базы данных MySQL */

while ($row=mysql_fetch_array($res)) {
echo $row['sobit'].' '.$row['opsobit'].' '.$row['kogda'];

/*Рисуем табличку с данными и с кнопкой редактирования записей */

echo '<FORM ACTION="change.php" METHOD="POST">';

echo '<INPUT TYPE="hidden" NAME="ann" VALUE="'.$row['nn'].'" SIZE="1" MAXLENGTH="240">';

echo '<INPUT TYPE="hidden" NAME="asobit" VALUE="'.$row['sobit'].'" SIZE="1" MAXLENGTH="240">';
echo '<textarea cols="50" rows="10" name="aopsobit" id="contact_text" class="inputbox" hidden>'.$row['opsobit'].'</textarea>';
echo '<INPUT TYPE="hidden" NAME="akogda" VALUE="'.$row['kogda'].'" SIZE="1" MAXLENGTH="240">';
echo '<INPUT TYPE="hidden" NAME="name" VALUE="'.$name.'" SIZE="1" MAXLENGTH="240">';
echo '<INPUT TYPE="hidden" NAME="pass" VALUE="'.$pass.'" SIZE="1" MAXLENGTH="240"><INPUT TYPE="submit" VALUE="Изменить!"></FORM>';
echo "<BR>";
}

/*Рисуем форму для ввода нового события */

echo '<P><center><TABLE WIDTH = 400><TR><TD align = right><FORM ACTION="seeadd.php" METHOD="POST">Событие:<BR> <INPUT TYPE="text" NAME="asobit" SIZE="30" MAXLENGTH="240"><P>';
echo 'Описание события:<BR> <textarea cols="50" rows="10" name="aopsobit" id="contact_text" class="inputbox"></textarea><P>Когда произойдет:<BR>';

echo '<input type="text" name="akogda1" class="tcal" value="" SIZE="20" MAXLENGTH="19"><P>';
echo '<INPUT TYPE="text" NAME="akogda2" VALUE="'.$toddi0.'" SIZE="20" MAXLENGTH="19"><P><INPUT TYPE="hidden" NAME="name" VALUE="'.$name.'" SIZE="30" MAXLENGTH="240"><P>';

echo '<INPUT TYPE="hidden" NAME="pass" VALUE="'.$pass.'" SIZE="30" MAXLENGTH="240"><P><INPUT TYPE="submit" VALUE="Добавить!"></FORM></TD></TR></TABLE></CENTER>';
}
/* Закрыть соединение */
mysql_close();

?>
</center>
</body>
</html>

Под табличкой  событий форма для ввода нового события  и кнопка Добавить, при нажатии на нее открывается seeadd.php, событие добавляется и снова отображается табличка с новым событием и форма ввода. Чтобы все корректно заносилось, надо обратить внимание на формат даты и кодировку.

<html>
<head>
<title>Напоминалка по событиям на PHP</title>
<meta https-equiv=”Content-Type” content=”text/html; charset=windows-1251?>
<body>

<?
/* Этот скрипт получает переменные из see.php */
/* Переменные для соединения с базой данных */
$hostname = "localhost";
$username = "user";
$password = "password";
$dbName = "database";
$akogda=$akogda1.' '.$akogda2

$userstable = "usvers";

/* создать соединение */
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
/* выбрать базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error());
$query = "SELECT * FROM $userstable WHERE name = '".$name."' and adres = '".$pass."' ";
$res = mysql_query($query) or die(mysql_error());

$name = mysql_real_escape_string($name);
$adres = mysql_real_escape_string($adres);

$number1 = mysql_num_rows($res);

if ($number1 == 0) {
echo 'Пользователь '.$name." не найден либо пароль не верен!<BR><BR>";
} else {
/* Таблица MySQL, в которой хранятся данные */
$userstable = "count1";
/* создать соединение */
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
/* выбрать базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error());

$name = mysql_real_escape_string($name);
$asobit = mysql_real_escape_string($asobit);
$aopsobit = mysql_real_escape_string($aopsobit);
$akogda = mysql_real_escape_string($akogda);
$query = "SELECT * FROM $userstable";
$res1 = mysql_query($query);
while ($row = mysql_fetch_row($res1))
$nn=$row[0]+1;

$query = "UPDATE $userstable SET nn=$nn";
mysql_query($query) or die(mysql_error());

/* Таблица MySQL, в которой хранятся данные */
$userstable = "sobbit";
/* создать соединение */
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
/* выбрать базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error());
/* составить запрос для вставки информации о событии в таблицу */
$query = "INSERT INTO $userstable VALUES('$nn', '$name','$asobit','$aopsobit','$akogda' )";
/* Выполнить запрос. Если произойдет ошибка - вывести ее. */
mysql_query($query) or die(mysql_error());
echo "Информация о событии занесена в базу данных.";
?>
<P>
<P>
<?

echo 'Записи пользователя '.$name."<BR><BR>";
/* создать соединение */
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
/* выбрать базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error());

$query = "SELECT * FROM $userstable WHERE usver = '".$name."' ";

$res = mysql_query($query) or die(mysql_error());
while ($row=mysql_fetch_array($res)) {
echo $row['sobit'].' '.$row['opsobit'].' '.$row['kogda'];

echo '<FORM ACTION="change.php" METHOD="POST">';
echo '<INPUT TYPE="hidden" NAME="ann" VALUE="'.$row['nn'].'" SIZE="1" MAXLENGTH="240">';
echo '<INPUT TYPE="hidden" NAME="asobit" VALUE="'.$row['sobit'].'" SIZE="1" MAXLENGTH="240">';
echo '<textarea cols="50" rows="10" name="aopsobit" id="contact_text" class="inputbox" hidden>'.$row['opsobit'].'</textarea>';
echo '<INPUT TYPE="hidden" NAME="akogda" VALUE="'.$row['kogda'].'" SIZE="1" MAXLENGTH="240">';
echo '<INPUT TYPE="hidden" NAME="name" VALUE="'.$name.'" SIZE="1" MAXLENGTH="240">';
echo '<INPUT TYPE="hidden" NAME="pass" VALUE="'.$pass.'" SIZE="1" MAXLENGTH="240"><INPUT TYPE="submit" VALUE="Изменить!"></FORM>';
echo "<BR>";

}

echo '<P><center><TABLE WIDTH = 400><TR><TD align = right><FORM ACTION="seeadd.php" METHOD="POST">Событие:<BR> <INPUT TYPE="text" NAME="asobit" SIZE="30" MAXLENGTH="240"><P>';
echo 'Описание события:<BR> <textarea cols="50" rows="10" name="aopsobit" id="contact_text" class="inputbox"></textarea><P>Когда произойдет:<BR>';
echo '<INPUT TYPE="text" NAME="akogda" SIZE="20" MAXLENGTH="19"><P><INPUT TYPE="hidden" NAME="name" VALUE="'.$name.'" SIZE="30" MAXLENGTH="240"><P>';
echo '<INPUT TYPE="hidden" NAME="pass" VALUE="'.$pass.'" SIZE="30" MAXLENGTH="240"><P><INPUT TYPE="submit" VALUE="Добавить!"></FORM></TD></TR></TABLE></CENTER>';
}
/* Закрыть соединение */
mysql_close();
?>

</center>
</body>
</html>

В табличке у нас кнопка Изменить открывает change.php с формой изменения введенной ранее записи.

<html>
<head>
<title>Напоминалка по событиям на PHP</title>
<meta https-equiv=”Content-Type” content=”text/html; charset=windows-1251?>
<body>

<?
/* Этот скрипт получает переменные из see.php */

/* Переменные для соединения с базой данных */
$hostname = "localhost";
$username = "user";
$password = "password";
$dbName = "database";
$userstable = "usvers";

/* создать соединение */
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
/* выбрать базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error());
$query = "SELECT * FROM $userstable WHERE name = '".$name."' and adres = '".$pass."' ";
$res = mysql_query($query) or die(mysql_error());

$name = mysql_real_escape_string($name);
$adres = mysql_real_escape_string($adres);

$number1 = mysql_num_rows($res);

if ($number1 == 0) {
echo 'Пользователь '.$name." не найден либо пароль не верен!<BR><BR>";
} else {

echo '<FORM ACTION="seechange.php" METHOD="POST">';
echo '<INPUT TYPE="hidden" NAME="ann" VALUE="'.$ann.'" SIZE="1" MAXLENGTH="240"><P>';
echo '<INPUT TYPE="text" NAME="asobit" VALUE="'.$asobit.'" SIZE="30" MAXLENGTH="240"><P>';
echo '<textarea cols="50" rows="10" name="aopsobit" id="contact_text" class="inputbox">'.$aopsobit.'</textarea><P>';
echo '<INPUT TYPE="text" NAME="akogda" VALUE="'.$akogda.'" SIZE="20" MAXLENGTH="240">';
echo '<INPUT TYPE="hidden" NAME="name" VALUE="'.$name.'" SIZE="1" MAXLENGTH="240">';
echo '<INPUT TYPE="hidden" NAME="pass" VALUE="'.$pass.'" SIZE="1" MAXLENGTH="240"><P><INPUT TYPE="submit" VALUE="Сохранить!"></FORM>';

}
/* Закрыть соединение */
mysql_close();

?>

</center>
</body>
</html>

Изменяем событие, и нажимаем Сохранить, после чего открывается seechange.php, новая информации о событии сохраняется.

<html>
<head>
<title>Напоминалка по событиям на PHP</title>
<meta https-equiv=”Content-Type” content=”text/html; charset=windows-1251?>
<body>

<?
/* Этот скрипт получает переменные из change.php */
/* Переменные для соединения с базой данных */
$hostname = "localhost";
$username = "user";
$password = "password";
$dbName = "database";
$userstable = "usvers";

/* создать соединение */
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
/* выбрать базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error());
$query = "SELECT * FROM $userstable WHERE name = '".$name."' and adres = '".$pass."' ";
$res = mysql_query($query) or die(mysql_error());

$name = mysql_real_escape_string($name);
$adres = mysql_real_escape_string($adres);

$number1 = mysql_num_rows($res);

if ($number1 == 0) {
echo 'Пользователь '.$name." не найден либо пароль не верен!<BR><BR>";
} else {
/* Таблица MySQL, в которой хранятся данные */

/* создать соединение */
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
/* выбрать базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error());

$name = mysql_real_escape_string($name);
$asobit = mysql_real_escape_string($asobit);
$aopsobit = mysql_real_escape_string($aopsobit);
$akogda = mysql_real_escape_string($akogda);

/* Таблица MySQL, в которой хранятся данные */
$userstable = "sobbit";
/* создать соединение */
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
/* выбрать базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error());
/* составить запрос для изменения информации в таблице */
$query = "UPDATE $userstable SET sobit='".$asobit."',opsobit='".$aopsobit."',kogda='".$akogda."' WHERE nn=$ann";
/* Выполнить запрос. Если произойдет ошибка - вывести ее. */
mysql_query($query) or die(mysql_error());
echo "Информация о событии изменена.";
?>
<P>
<P>
<?

echo 'Записи пользователя '.$name."<BR><BR>";
/* создать соединение */
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
/* выбрать базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error());

$query = "SELECT * FROM $userstable WHERE usver = '".$name."' ";
//$query = "SELECT * FROM $userstable";
$res = mysql_query($query) or die(mysql_error());
while ($row=mysql_fetch_array($res)) {
echo $row['sobit'].' '.$row['opsobit'].' '.$row['kogda'];

echo '<FORM ACTION="change.php" METHOD="POST">';
echo '<INPUT TYPE="hidden" NAME="ann" VALUE="'.$row['nn'].'" SIZE="1" MAXLENGTH="240">';
echo '<INPUT TYPE="hidden" NAME="asobit" VALUE="'.$row['sobit'].'" SIZE="1" MAXLENGTH="240">';
echo '<textarea cols="50" rows="10" name="aopsobit" id="contact_text" class="inputbox" hidden>'.$row['opsobit'].'</textarea>';
echo '<INPUT TYPE="hidden" NAME="akogda" VALUE="'.$row['kogda'].'" SIZE="1" MAXLENGTH="240">';
echo '<INPUT TYPE="hidden" NAME="name" VALUE="'.$name.'" SIZE="1" MAXLENGTH="240">';
echo '<INPUT TYPE="hidden" NAME="pass" VALUE="'.$pass.'" SIZE="1" MAXLENGTH="240"><INPUT TYPE="submit" VALUE="Изменить!"></FORM>';
echo "<BR>";

}

echo '<P><center><TABLE WIDTH = 400><TR><TD align = right><FORM ACTION="seeadd.php" METHOD="POST">Событие:<BR> <INPUT TYPE="text" NAME="asobit" SIZE="30" MAXLENGTH="240"><P>';
echo 'Описание события:<BR><textarea cols="50" rows="10" name="aopsobit" id="contact_text" class="inputbox"></textarea>';
echo '<P>Когда произошло:<BR> <INPUT TYPE="text" NAME="akogda" SIZE="20" MAXLENGTH="19"><P><INPUT TYPE="hidden" NAME="name" VALUE="'.$name.'" SIZE="30" MAXLENGTH="240"><P>';
echo '<INPUT TYPE="hidden" NAME="pass" VALUE="'.$pass.'" SIZE="30" MAXLENGTH="240"><P><INPUT TYPE="submit" VALUE="Добавить!"></FORM></TD></TR></TABLE></CENTER>';
}
/* Закрыть соединение */
mysql_close();
?>

</center>
</body>
</html>

Снова отображается табличка с измененным событием и форма ввода.
Файл prover.php, который ставится в cron, и по времени проверяет базу на предмет просроченного событий, если находит - высылает на e-mail пользователя  напоминание.

<html>
<head>
<title>Напоминалка по событиям на PHP</title>
<meta https-equiv=”Content-Type” content=”text/html; charset=windows-1251?>
<body>

<?

/* Переменные для соединения с базой данных */
$hostname = "localhost";
$username = "user";
$password = "password";
$dbName = "database";
$today = getdate();
$toddi = "$today[year]-$today[mon]-$today[mday] $today[hours]:$today[minutes]:00";

/* Таблица MySQL, в которой хранятся данные */
$userstable = "sobbit";
/* создать соединение */
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
/* выбрать базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error());

$query = "SELECT * FROM $userstable";

$res = mysql_query($query) or die(mysql_error());
while ($row=mysql_fetch_array($res)) {

if ($row['kogda'] < $toddi ) {

$to = $row['usver'];
$subject = $row['sobit'];
$message = $row['opsobit']."<br />".$row['kogda']."<br />Внимание!<br /><i>Это письмо отправлено <b>роботом</b> и отвечать на него не нужно!</i>";
$headers = "From: ".$row['usver']."<".$row['usver'].">\r\nContent-type: text/html; charset=windows-1251 \r\n";
mail ($to, $subject, $message, $headers);

} else {
}

}

/* Закрыть соединение */
mysql_close();

?>

</center>
</body>
</html>

И напоследок, форма, которая высылает забытый пароль пользователю на e-mail.
Форма ввода логина для напоминания забытого пароля, , файл forgot.php.

<html>
<head>
<title>Напоминалка по событиям на PHP/title>
<meta https-equiv=”Content-Type” content=”text/html; charset=windows-1251?>
<body>
<P>
<center>
<TABLE WIDTH = 400><TR><TD align = right>
<FORM ACTION="forgot1.php" METHOD="POST">
E-mail:<BR> <INPUT TYPE="text" NAME="name" SIZE="30" MAXLENGTH="240">
<P>

<INPUT TYPE="submit" VALUE="Выслать">
</FORM>
</TD></TR></TABLE></CENTER>

</center>
</body>
</html>

При нажатии на кнопку "Выслать" запускается файл forgot1.php, который высылает пароль на e-mail пользователя.

<html>
<head>
<title>Напоминалка по событиям на PHP</title>
<meta https-equiv=”Content-Type” content=”text/html; charset=windows-1251?>
<body>

<?
/* Этот скрипт получает переменные из forgot.php */

/* Переменные для соединения с базой данных */
$hostname = "localhost";
$username = "user";
$password = "password";
$dbName = "database";

$userstable = "usvers";

/* создать соединение */
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
/* выбрать базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error());
$query = "SELECT * FROM $userstable WHERE name = '".$name."' ";
$res = mysql_query($query) or die(mysql_error());

$name = mysql_real_escape_string($name);
$adres = mysql_real_escape_string($adres);
$number1 = mysql_num_rows($res);
$row=mysql_fetch_array($res);


if ($number1 == 0) {
echo 'Пользователь '.$name." не найден либо пароль не верен!<BR><BR>";
} else {

$to = $row['name'];
$subject = 'Восстановление пароля для '.$row['name'];
$message = 'Логин: '.$row['name']."<br /><b>Пароль: </b>".$row['adres'];
$headers = "From: ".$row['name']."<".$row['name'].">\r\nContent-type: text/html; charset=windows-1251 \r\n";
mail ($to, $subject, $message, $headers);
echo "Информация отправлена на указанный адрес.";
}
/* Закрыть соединение */
mysql_close();

?>

<a href="login.php" >Войти</a>

</center>
</body>
</html>

В результате получается вот такая простая база данных по событиям с функцией уведомления о событиях на e-mail пользователя:

phpbase 293x350 Простая база данных на PHP и MySQL

Дополнительно список событий можно оформить в виде таблички, еще можно добавить кнопку "Удалить" в таблицу для удаления строк, сделать возможность "закрывать" события, нажимая на ссылку сразу в письме с напоминанием, сделать какое-нибудь шифрование пароля, который передается через адресную строку.

А так можно представленные выше куски кода вставить в шаблоны страниц, чтобы красиво было, залить на сайт и будет он-лайн напоминалка о событиях на e-mail.

Скачать исходники можно по ссылке https://ds-release.ru/bazaphp.rar