MySQL & PHP : Основи
Преди да напиша урока, нека разгледаме един проблем -
създаването на база данни.
Аз лично я създавам чрез контрол панела на хоста, други през PHPMyAdmin а може и чрез PHP скрипт.
Няма да се впускам в това как да създадете база данни - приемам,че имате хостинг,който има
контрол панел а ако незнаете как да го ползвате може да звъннете един тел. и те ще ви обяснят.
Базата данни ще си има име , a чрез username и password ще получаите
достъп до нея.
Значи ето как примерно би трябвало да започва скрипта за свързване с базата данни:

$user="username";
$password="password";
$database="database";
mysql_connect(localhost,$user,$password);

ако вашата база данни се казва TEST ,username BOBI и password 11111
то ще напишете така:

$user="BOBI";
$password="11111";
$database="TEST";
mysql_connect(localhost,$user,$password);


За да ви е по лесно при четенето на урока по добре създайте база данни която
да е с име TEST, user BOBI и password 11111 за да може да ползвате примерите по долу
без да се налага да ги променяте.Така няма да се объркате и всичко ще работи.


Базата данни има таблична структура (така да се каже):
Тоест - всички данни и идентификатори са подредени в таблица.
Пример:
Искаме последователно да записваме информация за различни хора.
Информацията ще бъде следната:
1.Име
2.Фамилия
3.Телефон
4.Мобилен телефон
5.Факс
6.eMail
7.Уебстраница

Информацията може да се събира чрез формуляр или вие да я вкарвате сами.
Но тя ще бъде подредена в MySQl във вид на таблица.

Ето как ще изглежда тази таблица:




IDfirstlastphonemobilefaxemail web
1ПетърГеоргиев02/9346578088835765402/8776543petar@abv.bghttp://tutifruti.info
2ИванПетров02/7868570889456789-ivan@mail.bhttp://tusf.info
3ПетърВасилев02/9346578088835765402/8776543petar@abv.bghttp://tutifruti.info
4СимеонПетров02/7868570889456789-ivan@mail.bhttp://tusf.info

и тн....

Таблицата може да стане с хиляди имена на хора и срещу тях техните данни.
Достатъчно е да зададем на базата данни какво търсим и тя ще го открие веднага.
Примерно си преставете горната таблица безкрайно дълга.
Ако търсим в нея примерно:
"Чий беше този телефон 02/786857"
Ако кажеме на базата данни да намери този телефон на кой е тя ще прерови цялата колона с телефони
и щом намери съответствие ще ни покаже че срешу този телефон седи името:Иван Петров .

Ето как чрез PHP да създадем такава таблица в която ще записваме нашите данни:
<?
$user="BOBI";
$password="11111";
$database="TEST";
mysql_connect(localhost,$user,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="CREATE TABLE contacts (id int(6) NOT NULL auto_increment,first varchar(15) NOT NULL,last varchar(15) NOT NULL,phone varchar(20) NOT NULL,mobile varchar(20) NOT NULL,fax varchar(20) NOT NULL,email varchar(30) NOT NULL,web varchar(30) NOT NULL,PRIMARY KEY (id),UNIQUE id (id),KEY id_2 (id))";
mysql_query($query);
mysql_close();
?>


Този скрипт ще го запишете като create.php

Таблицата, която създадохме се казва contacts.
От по горния код първите 4 реда са ясни вече.
Чрез петия ред се свързваме с дата база с име TEST .
Ето я и важната част:
$query="CREATE TABLE contacts (id int(6) NOT NULL auto_increment,first varchar(15) NOT NULL,last varchar(15) NOT NULL,phone varchar(20) NOT NULL,mobile varchar(20) NOT NULL,fax varchar(20) NOT NULL,email varchar(30) NOT NULL,web varchar(30) NOT NULL,PRIMARY KEY (id),UNIQUE id (id),KEY id_2 (id))";

Създаване на таблица с име contacts която ще има 8 колкони.
Колоните също си имат име:
Ето първата колона е уникалния идентификатор. id int(6) NOT NULL auto_increment
Втората колона е за първите имена . first varchar(15) NOT NULL
Третата колона е за фамилийте . last varchar(15) NOT NULL
и тн...
id int(6) значи че тази колона ще съдържа само числа нещо като брояч
който ще номерира всеки ред от таблицата.
first varchar(15) NOT NULL ТАзи клетка от таблицата ще съдържа
най-много 15 знака(тоест името на човека не може да е по голямо от 15 знака).

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

Ето HTML формуляра чрез който ще изпращаме данните :
<form action="insert.php" method="post">
First Name: <input type="text" name="first"><br>
Last Name: <input type="text" name="last"><br>
Phone: <input type="text" name="phone"><br>
Mobile: <input type="text" name="mobile"><br>
Fax: <input type="text" name="fax"><br>
E-mail: <input type="text" name="email"><br>
Web: <input type="text" name="web"><br>
<input type="Submit">
</form>


Запишете го като form.html

А ето го и скрипта, който ще получава данните от формуляра и ще ги записва в базата данни.

<?
$user="BOBI";
$password="11111";
$database="TEST";

$first=$HTTP_POST_VARS['first'];
$last=$HTTP_POST_VARS['last'];
$phone=$HTTP_POST_VARS['phone'];
$mobile=$HTTP_POST_VARS['mobile'];
$fax=$HTTP_POST_VARS['fax'];
$email=$HTTP_POST_VARS['email'];
$web=$HTTP_POST_VARS['web'];

mysql_connect(localhost,$user,$password);
@mysql_select_db($database) or die( "Unable to select database");

$query = "INSERT INTO contacts VALUES ('','$first','$last','$phone','$mobile','$fax','$email','$web')";
mysql_query($query);

mysql_close();
?>



Него го записваме като insert.php

Той получава данните от формуляра form.html и ги записва в таблицата.

Ето какво правиме оттук нататък:
Стартираме create.php
Ако всичко е наред ще се покаже бял екран(тъпо ама няма как)
Ако нещо има проблем ще изкочи надпис Unable to select database .
Ако излезе този надпис проверете следното:
Дали сте създали наистина база данни с име TEST.
Дали user и password съвпадат с тези, които са за вашата база данни.
Някой път има значение дали са написани с малки или големи букви .
Абе две думи някъде има жмел.


Ако обаче всичко е наред значи, че вече имате таблица с име contacts и тогава
стартирате файла form.html

Ще се появи формуляр.

Попълвате го и го изпращате няколко пъти с различни данни.
Когато натиснете бутона Submit данните се изпращат на скрипта insert.php и трябва да се
покаже бял екран ако всичко е наред. Ако ли не - ще даде грешка.

След малко ще напишеме скрипт който ще визуализира какво сме добавили в базата данни.

Ето го и него:

<?
$user="BOBI";
$password="11111";
$database="TEST";




mysql_connect(localhost,$user,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM contacts";
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();

echo "<table border=1><tr><td>first<td><td>last</td><td> phone</td> <td>mobile</td><td> fax
</td><td>email</td><td>web</td></tr>";

$i=0;
while ($i < $num) {

$first=mysql_result($result,$i,"first");
$last=mysql_result($result,$i,"last");
$phone=mysql_result($result,$i,"phone");
$mobile=mysql_result($result,$i,"mobile");
$fax=mysql_result($result,$i,"fax");
$email=mysql_result($result,$i,"email");
$web=mysql_result($result,$i,"web");

echo "
<tr><td>$first<td><td>$last</td><td>$phone</td><td>$mobile</td><td> $fax</td><td>
$email</td><td>$web</td></tr>";

$i++;
}

?>


записва те го като displaying.php и го стартирате.
Трябва всичко което сте попълнили в формуляра да се покаже в подреден вид.

Ето какво трябва да се случи постъпково:


Ако всичко сте направили както пише по горе трябва да имате 4 файла в една и съща директория:
create.php
form.html
insert.php
displaying.php

1.След като създадете база данни трябва да стартирате скрипта create.php и
да създадете таблица с име contacts.
2.Стартирате form.html попълвате формуляра и го изпращате чрез бутона Submit.
3.Стартирате displaying.php и ако всичко е наред ще видите данните които сте записали .



Урока е подготвен специално за http://web-tourist.net











/ Трябва да сте регистриран за да напишете коментар /
От: matev92
16:35 11-07-2010
Обяснено на прост български. Браво! Поздрави!
От: lubobot
1:55 02-02-2011
Браво! Много полезен урок :)
От: iviubaveca
22:36 19-02-2011
Хмм интересно като отворя create.php и тръгва да ми сваля файла, смисъл показва ми се това дали да отворя файла с ... програма или да го сейвам.Моля за помощ
От: f3n1xX
3:18 10-09-2011
Направих всичко което е написано по урока, но ми излиза една грешка и мисля че е заради това че го пробвам на безплатен хостинг?
Ето това ми излиза

PHP Error Message

Parse error: syntax error, unexpected T_DNUMBER in /home/a6250670/public_html/create.php on line 5

Free Web Hosting

Моля за помощ
1