Ежедневен архив с БД
Автор: fireman
Поздрави на вскички.Реших да направя този ежедневен архив с БД, защото ми беше много необходим, а като се разрових из нета намерих какви ли не сложнотии с месечни календари и какви ли не още излишни функции.Така че реших аз да си създам собствена архивна система.Надявам се да е полезна и за други.Системата се състои от 5 файла и една БД:
- func.php
2.form.htm
3.secret.php
4.buletin.php
5.buletin1.php
Това е func.php , където трябва да сложите вашите данни съответно за хост, име , парола и име на БД.
<?php
function db_connect()
{
//Въведете на мятото на user и password вашите данни съответно
$result = @mysql_connect("ИМЕ НА ХОСТ", "user ", "password");
if (!$result)
return false;
//Въведете на мятото на ИМЕ НА БД вашите данни за името на БД
if (!@mysql_select_db("ИМЕ НА БД"))
return "Нямате връзка с база данни";
return $result;
}
?>Това е form.htm , откъдето вие можете да извличате данни от архива (трябва да сте ги вкарали преди това естествено иначе ще ви дава грешка) и да отидете в административния панел.Дал съм обяснения в самия код ,така че се надявам да няма проблеми.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Бюлетин за възникналите произшествия</title>
</head>
<body>
<!-- Това е формата, от която като се изберат дата , месец и година ще извлече данните от БД.Всеки може да си вгради тази форма във собствената страница, където иска с помощта на CSS-->
<p>Моля изберете дата , месец и година за бюлетин за възникналите произшествия:</p>
<!-- Тук можете да напишете,че началната дата на архива е от еди кога си-->
<form action="buletin1.php" method="POST">
Избери дата: <select name="day" >
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select> <br>
Избери месец:
<select name="month" >
<option value="1">Януари</option>
<option value="2">Февруари</option>
<option value="3">Март</option>
<option value="4">Април</option>
<option value="5">Май</option>
<option value="6">Юни</option>
<option value="7">Юли</option>
<option value="8">Август</option>
<option value="9">Септември</option>
<option value="10">Октомври</option>
<option value="11">Ноември</option>
<option value="12">Декември</option>
</select><br>
Избери година:
<select name="year" >
<option value="2007">2007</option>
<option value="2008">2008</option>
<option value="2009">2009</option>
<option value="2010">2010</option>
</select><br>
<input type="submit" name="Order" value="Изпрати">
</form>
<!-- Това е препратка към административен панел, където трябва да се въведат име и парола.-->
<a href="secret.php">Административен панел</a>
</body>
</html>
Това е secret.php
Сменете името и паролата, както желаете в случая съм ги направил име- admin и парола- demo ,за да влезнете в DEMOTO , което ще дам най-отдолу.
<?php
//Създаваме кратки имена на проментивите
@ $name = $_POST['name'];
@ $password = $_POST['password'];
if(empty($name)||empty($password))
{
//Създаваме форма, където АДМИНИСТРАТОРА трябва да въведе името и паролата
?>
<h4>Въведете име и парола,за да получите достъп.</h4>
<form method="post" action="secret.php">
<table border="1">
<tr>
<th> Име: </th>
<td> <input type="password" name="name"> </td>
</tr>
<tr>
<th> Парола: </th>
<td> <input type="password" name="password"> </td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="Потвърди">
</td>
</tr>
</table>
</form>
<?php
}
//Сменете името и паролата, както желаете в случая съм ги направил име- admin и парола- demo
else if($name=='admin'&&$password=='demo')
{
// Прави се проверка за съответствие на името и паролата и ако съответстват се отваря административната страница
echo '<h2>Добре дошли в административната страница!</h2>';
echo "<h4>Моля попълнете полетата за съставяне на бюлетина:<h4>";
?>
<!-- Това е формата, от която като се попълнят данните чрез скрипта в buletin.php ще бъдат записани в БД.Всеки може да си промени формата според нуждите си-->
<form action="buletin.php" method="POST">
Избери датата на сдаване на дежурството: <select name="day" >
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select> <br>
Избери месеца на сдаване на дежурството:
<select name="month" >
<option value="1">Януари</option>
<option value="2">Февруари</option>
<option value="3">Март</option>
<option value="4">Април</option>
<option value="5">Май</option>
<option value="6">Юни</option>
<option value="7">Юли</option>
<option value="8">Август</option>
<option value="9">Септември</option>
<option value="10">Октомври</option>
<option value="11">Ноември</option>
<option value="12">Декември</option>
</select><br>
Избери годината на сдаване на дежурството:
<select name="year" >
<option value="2007">2007</option>
<option value="2008">2008</option>
<option value="2009">2009</option>
<option value="2010">2010</option>
</select><br>
<form>
Общо произшествия - брой: <input type="text" name="obshto" size="4"/> <br />
Пожари - брой: <input type="text" name="pojari" size="4" /> <br />
Катастрофи - брой: <input type="text" name="kat" size="4" /><br />
Други - брой: <input type="text" name="drugi" size="4"/> <br />
Пожари без загуби - брой: <input type="text" name="pojari_no" size="4"/> <br />
<input type="submit" name="Order" value="Изпрати">
</form>
<?php
}
else
{
// Ако не отговарят името и паролата се появява долният надпис, които също може да се промени спрямо нуждите ви
echo 'Вие нямате права да работите с административната страница.';
echo 'Спомнете си паролата!!';
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- по-долу съм направил charset=utf-8 вие можете да го промените, но трябва да отговаря на charset -а ,които правите при създаването на БД с phpmyadmin-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Бюлетин за възникналите произшествия</title>
</head>
<body>
</body>
</html>Това е buletin.php
Правим връзка и със заявката записваме в БД
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset = utf-8" />
<title>Бюлетин за възникналите произшествия</title>
</head>
<body>
<?php
//В този func.php са записани данните за хоста и за БД, които ще ползвате .На него съм се спрял по-нагоре.
include ('func.php');
// Създаваме кратки имена на променливите ,които ще записваме и извличаме
$obshto = $_POST['obshto'];
$pojari = $_POST['pojari'];
$kat = $_POST['kat'];
$drugi = $_POST['drugi'];
$pojari_no = $_POST['pojari_no'];
$day = $_POST['day'];
$month = $_POST['month'];
$year = $_POST['year'];
$newdate = "$month"."$day"."$year" ;
//Изчистваме подаваните данни към БД
$newdate =trim ($newdate);
$newdate =addslashes ($newdate);
//Правим връзка и със заявката записваме в БД
$conn = db_connect();
mysql_query('set names utf8');
$query = "insert into buletin values ('$newdate','$obshto','$pojari','$kat','$drugi','$pojari_no')";
$result = mysql_query($query);
if (!$result){
return false;
}
?>
<table width="700px" ><tr><td>
<?php
// В тази част от кода извеждам въведените данни и ги разпечатвам
echo("<h3 align = center >Справка за възникналите произшествия</h3>\n");
echo("<h4 align = center >от 08.30 часа на предния ден до 08.30 часа на $day.$month.$year година на</h4>\n");
echo("<h4 align = center >територията на Областна дирекция 'Пожарна безопасност и защита на населението' - гр.Пловдив</h4>\n\n");
echo("Общо произшествия - $obshto <br>\n");
echo("Пожари - $pojari <br>\n");
echo("Катастрофи - $kat <br>\n");
echo("Други - $drugi <br>\n");
echo("Пожари без загуби - $pojari_no <br>\n");
?>
</td></tr></table>
<p>Информацията е записана успешно в базата данни!</p>
</body>
</html>Това е buletin1.php
Правим връзка и със заявката извеждаме от БД резултатите спрямо датата, месеца и годината , които желаем.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset = utf-8" />
<title>Бюлетин за възникналите произшествия</title>
</head>
<body>
<?php
//В този func.php са записани данните за хоста и за БД, които ще ползвате .На него съм се спрял по-нагоре.
include ('func.php');
// Създаваме кратки имена на променливите ,които ще записваме и извличаме
$day = $_POST['day'];
$month = $_POST['month'];
$year = $_POST['year'];
$newdate = "$month"."$day"."$year" ;
//Изчистваме подаваните данни към БД
$newdate =trim ($newdate);
$newdate =addslashes ($newdate);
//Правим връзка и със заявката извеждаме от БД резултатите спрямо датата, месеца и годината , които желаем
$conn = db_connect();
mysql_query('set names utf8');
$query = "select * from buletin where newdate = $newdate ";
$result = mysql_query($query);
if (!$result){
return false;
}
?>
<table width="700" ><tr><td>
<?php
// В тази част от кода извеждам въведените данни и ги разпечатвам
echo("<h3 align = center >Справка за възникналите произшествия</h3>\n");
echo("<h4 align = center >от 08.30 часа от предния ден до 08.30 часа на $day.$month.$year година на</h4>\n");
echo("<h4 align = center >територията на Областна дирекция 'Пожарна безопасност и защита на населението' - гр.Пловдив</h4>\n\n");
printf("Общо произшествия - %s<br>\n", mysql_result($result,"","obshto"));
printf("Пожари - %s<br>\n", mysql_result($result,"","pojari"));
printf("Катастрофи - %s<br>\n", mysql_result($result,"","kat"));
printf("Други - %s<br>\n", mysql_result($result,"","drugi"));
printf("Пожари без загуби - %s<br>\n", mysql_result($result,"","pojari_no"));
?>
</td></tr></table>
</body>
</html>Добре , че погледнах защото щях да забравя най-важното – структурата на талицата – buletin , която трябва да създадете в БД .Тук едиствената особенност е че полето – newdate трябва да го направите PRIMARY KEY за да не могат да се записват данни за една и съща дата два пъти.
CREATE TABLE `buletin` (
`newdate` int(11) NOT NULL,
`obshto` int(11) default NULL,
`pojari` int(11) default NULL,
`kat` int(11) default NULL,
`drugi` int(11) default NULL,
`pojari_no` int(11) default NULL,
PRIMARY KEY (`newdate`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;Както писах по-горе тази архивна система си е изцяло моя, зная че могат да се направят доста подобрения но това може би по-нататък.
Ако ви хареса архивната система я ползвайте на воля, само ако може ми изпратете един емайл за да мога и аз да се похваля че съм дал нещо на света. Емайла ми е : pepopv@abv.bg
Ако някой измисли подобрения, ще се радвам да ги сподели !
Публикувам урока с благодарност към всички от форума на web-tourist.net , които са ми помагали, а се надявам да помагат и занапред.


