Webmaster общности: Predpriemach.com | SearchEngines.bg

    Ежедневен архив с БД

    Автор: fireman

    Поздрави на вскички.Реших да направя този ежедневен архив с БД, защото ми беше много необходим, а като се разрових из нета намерих какви ли не сложнотии с месечни календари и какви ли не още излишни функции.Така че реших аз да си създам собствена архивна система.Надявам се да е полезна и за други.Системата се състои от 5 файла и една БД:

    1. 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 , които са ми помагали, а се надявам да помагат и занапред.

    Оставете коментар