Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 Създаване на книга за гости с база данни
  1. Създаване на книга за гости с база данни
iwanov
     
Автор  iwanov (12.01.2008 14:01)  съобщение до автора
Погледнат  4303 пъти  добави към любими
Оценка  добави коментар
Гласове  --  изпрати на приятел
Коментари  (2)  абонирай се за PHP
    Страница 1 / 1

 



Създаването на книга за гости изисква таблица в база данни за съхраниение на съобщенията, които посетителите ще оставят. Таблицата може да създадете директно в монитора на MySQL или с PHP.

Следващия скрипт използва съществуваща база данни "klienti:. В нея се създава таблица с име "gosti" с полета "id", "ime", "email", "komentar" и автоматично после "vreme" за датата и часа на записване на съобщението (във формат timestamp).

Скрипта трябва да се изпълни само веднъж, за да създаде таблица за книгата ни за гости.

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<html>
<
head>
    <
title>Създаване на таблица</title>
</
head>
<
body>
<?
php
// Свръзване с ДБ
(Проверяваме за грешки)
mysql_connect("localhost", "test", "test") or die("Не може да се свърже със сървъра");
@
mysql_select_db("klienti") or die("Няма такава ДБ");

// Създаваме таблица в БД
$install = "CREATE TABLE `gosti` (
                `id` INT( 4 ) NOT NULL AUTO_INCREMENT,
                `ime` VARCHAR( 40 ) NOT NULL,
                `email` VARCHAR( 40 ) NOT NULL,
                `komentar` TEXT NULL, vreme timestamp ( 14 ),
            PRIMARY KEY ( id )) TYPE = MYISAM
";
mysql_query($install);

// Затваряме връзката с
MySQL
mysql_close();
?>
</
body>
</
html>


Добавяне на записи в книгата за гости

След като таблицата за гости вече е създадена от скрипта в предишния пример, в нея може да се съхранява информация, попълнена в HTML формуляр, използващ PHP. Когато бъде зареден за първи път в браузър, следщия PHP скрипт показва формуляр, съдържащ полетата "ime, "email" и "komentar". Ако някое от тях е оставено празно и е натиснат бутона за приемане на формуляра, той се показва още веднъж.

Ако формулярът е попълнен изцяло, скриптът ще запише въведената информация в съответните колони на таблицата "gosti". На страницата ще се изпише потвърждение и хипервръзка към друга страница, на която може да се види информацията в книгата за гости.

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<html>
<
head>
    <
title>Попълване на книгата за гости</title>
</
head>
<
body>
<?
php
$self     = $_SERVER['PHP_SELF'];
$ime     = $_POST['ime'];
$email     = $_POST['email'];
$komentar = $_POST['komentar'];
$submit = $_POST['submit'];

//
html формуляр
$form = "<form action='$self' method='post'>";
$form.= "Име: <input type='text' name='ime'";
$form.= "size='40' value=$ime><br>";
$form.= "Email-адрес: <input type='text' name='email'";
$form.= "size='40' value='$email'> <br>";
$form.= "Въведете вашия коментар: <br>";
$form.= "<textarea name='komentar' cols='30'";
$form.= "rows='3'>".$komentar."<\/textarea><br>";
$form.= "<input type='submit' name='submit'";
$form.= "value='Приеми'> </form>";

//показване на формуляра при първо отваряне
if (!$syobsht) {
   
$syobsht = $form;
}
else{
  
//показване на съобщението и на формуляра, ако не е бил попълнен изцяло
   
if (!$ime or !$email or !$komentar) {
       
$syobsht = "<b>Моля попълнете всички полета</b><br><br>";
       
$syobsht .= $form;
   
}
   
else //добавяне на информацията от формуляра в таблицата gosti
   
{
      
//свързване с mysql
       
$conn = mysql_connect("localhost", "test", "test")
               
or die("неуспешен опит за връзка с базата данни");
      
//селектиране на базата данни
       
$r = mysql_select_db("klienti", $conn)
               
or die("неуспешен опит за селектиране на базата данни");
      
//създаване на sql заявка
       
if ($ime and $komentar) {
           
$zaiavka = "INSERT INTO gosti
                            (ime, email, komentar)
                        VALUES ('
$ime', '$email', '$komentar')";
          
           
$r = mysql_query($zaiavka, $conn)
               
or die("sql заявката не може да бъде изпълнена");
       
}
      
// потвърждаване на въвеждането и
      
// показване на връзката за разглеждане на книгата
       
if ($r) {
           
$syobsht = "<h2>Благодарим ви - Вашият коментар е записан.</h2>";
           
$syobsht .= "<h2><a href = 'kniga.php'>";
           
$syobsgt .= "Разглеждане на книгата за гости</a></h2>";
       
}
    }
}
echo ($syobsht);
?>
</
body>
</
html>

Когато формулярат бъде приет с попълнена информация във всички полета, данните се добавят към таблицата gosti в базата данни и се изписва потвърждение.

Сега можете да видите записа в монитора на MySQL. Забележете че данните id и vreme се добавят автоматично.


Изполване на данни за дата и час

Четиринайсет цифровото число от тип timestamp в MySQL записва датата и часа в следния формат:
първите четири цифри представляват годината, а всяка следваща двойка цифри са месеца, деня, часа, минутите и секундите.

Можете да използвате PHP функцията substr(), за да видите част от числото, представляващо времето и часа. Като първи аргумент се подава самото поле от тип timestamp. Като втори аргумент във вид на число се подава позицията на първия символ, който ще бъде извлечен, а третият аргумент е дължината на символния низ, който ще бъде прочетен.

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<html>
<
head>
    <
title>Използване на дата и час</title>
</
head>
<
body>
<?
php
$conn = mysql_connect("localhost", "test", "test");
$r = mysql_select_db("klienti", $conn);
$zaiavka = "SELECT * FROM gosti WHERE id=1";
//разделяне на часа и дадата в по нагледен формат
while ($red = mysql_fetch_array($r)) {
   
$vreme = $red["vreme"];
   
$god = substr($vreme, 0, 4);
   
$mes = substr($vreme, 4, 2);
   
$den = substr($vreme, 6, 2);
   
$chas = substr($vreme, 8, 2);
   
$min = substr($vreme, 10, 2);
   
$sek = substr($vreme, 12, 2);
   
$novo_vreme = date("d F Y, D, h:i a",
                       
mktime($chas, $min, $sek, $mes, $den, $god));
   
echo ("Дата и час на въвеждането: " . $novo_vreme);
}
?>
</
body>
</
html>

Резултата от този пример ще бъде дата, подобна на тази:

Дата и час на въвеждането: 011 Jan 2008, Fry, 02:12


Рзглеждане на книгата на гости

Когато щракнете в/у връзката в примера за добавяне на записи в книгата за гости, се зарежда скрипта kniga.php, изписан по долу. Той извлича информацията от всяко поле от последните два записа в таблицата gosti, организирани в низходящ ред според времето, в което са записани.
Скриптат показва за всеки запис съхранените име, email адрес, коментар и форматирани дата и час.

Дори в таблицата gosti да са въведени десет записа, скрипта генерира HTML резултатите само за последните два. Адресът на електронната поща на потребителя е форматиран във вид на връзка с протокола mailto:, за да се улесни отговора на коментара.

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<html>
<
head>
<
title>Разглеждане на книгата за гости</title>
</
head>
<
body>
<?
php
//свързване с
MySQL
$r = @ mysql_connect("localhost", "test", "test") or die("Грешка");

//селектиране на базата данни
$r = @ mysql_select_db("klienti") or die("Грешка");

//
sql заявка за последните два записа
$zaiavka = "select * from gosti order by vreme desc limit 2";

//изпълнение на заявката
$r = @ mysql_query($zaiavka) or die("Заявката не може да бъде изпълнена");

//цикал за записите, създаващ теблица за всеки от тях
while ($red = mysql_fetch_array($r)) {
?>
<
b>Име:</b> <?php echo $red["ime"]; ?><br>
<
b><Email:</b> <a href="mailto:<?php echo $red["email"]; ?>">
<?
php echo $red["email"]; ?></a><br>
<?
php
   
$vreme = $red["vreme"];
   
$god = substr($vreme, 0, 4);
   
$mes = substr($vreme, 4, 2);
   
$den = substr($vreme, 6, 2);
   
$chas = substr($vreme, 8, 2);
   
$min = substr($vreme, 10, 2);
   
$sek = substr($vreme, 12, 2);
   
$novo_vreme = date("d F Y, D, h:i a", mktime($chas, $min, $sek, $mes, $den, $god));
?>
<
b>Дата: </b> <?php echo $novo_vreme; ?> <br />
<b>Коментар: <
/b> <?php echo $red["komentar"]; ?><br />
<hr
/>
<?
php } ?>
</
body>
</
html>



   


Ключови думи: php книга за гости база данни mysql таблица формуляр


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 За автора: iwanov  
Казвам се Галин Иванов и обичам да се занимавам с програмиране и като цяло с компютри. Разбирам от HTML, CSS, PHP и MySQL. Старая се да научавам постоянно нови неща от IT сферата.
   
 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

Здрасти Ради,
Файловете се запаметяват като .php
Прочети този урок как се свърсзва php и html
Вграждане на PHP в HTML
Имента на файловете си ги избираш ти.
Явно трябва да почнеш да четеш и за php.

Поздрави!

  iwanov на 27.02.2008 11:57

Значи, сигурно изчетох всички подобни уроци в почти всички сайтове за уроци, които намерих. Проблема ми е следният: При вече създаден сайт, изцяло на html, как да вмъкна книгата за гости, в точно определено място и как да се именуват новосъздадените документи - като навсякъде в уроците дават кода, но не казват в какъв документ да го вмъкна. Според казаното в урока, аз разбирам, че трябва да направя 4-ри файла, но - какви имена да имат и дали да ги сложа в отделна папка.Освен това, не знам как бих могла да направя собствен дизайн на страницата, в която се виждат коментарите?

  Rada на 27.02.2008 09:26

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008