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

    Въведение в PHP и MySQL

    Синтаксисът на PHP много наподобява този на C или Perl. Хора, запознати с програмирането, много бързо могат да започнат да пишат програми на PHP. В този език няма строга типизация на данните и отпада необходимоста от действията по заделяне/освобождаване на памет.Програмите, написани на PHP, са достатъчно лесночитаеми. Написаният PHP – код е зрително лесно разбираем и запомнящ се, за разлика от Perl-програмите.

    Въведение в PHP и MySQL.
    Източници на информацията.

    Основни източници – ръководство по PHP (www.php.net) и MySQL (www.mysql.com).

    Какво е PHP?

    PHP – скриптов език (scripting language), вграждащ се в HTML, който се интерпретира и изпълнява на сървъра. Пример:

    <html>
    <head>
    <title>Example</title>
    </head>
    <body>
    <?php echo "Здравей, както виждаш и това вече го можеш!"; ?>
    </body>
    </html>

    След изпълнение на скрипта получаваме страница, на която ще бъде написано:

    Здравей, както виждаш и това вече го можеш!

    Основна разлика от CGI-скриптовете, написани на други езици, като Perl или C – е, че в CGI-програмите Вие сами пишете изходния HTML – код, а използвайки PHP – вграждате своята програма в готовата HTML-страница, използвайки отварящите и затварящите тагове(в примера <?php и ?>).

    Разликата между PHP и JavaScript, се състои в това, че PHP-скрипта се изпълнява на сървъра и резултата от работата се предоставя на клиента, докато JavaScript кода напълно се предоставя на клиентската машина и само там се изпълнява.

    Любителите на Internet Information Server ще открият, че PHP много прилича на Active Server Pages (ASP), а тези на Java ще кажат, че PHP прилича на Java Server Pages (JSP). И трите езика позволяват вграждане на код, изпълним на Web-сървъра, вътре в HTML страница.

    Възможности на PHP.

    С няколко думи – на PHP може да се направи всичко, което може да се направи със CGI-програмите. Например: обработка на данните от формата, генериране на динамични страници, получаване и изпращане на cookies.

    Освен това в PHP е включена подръжка на много бази данни (databases), което прави писането на Web-приложения с исползуване на БД изключително опростено.

    Ето непълния списък от поддържани БД:

    Adabas D InterBase Solid
    dBase mSQL Sybase
    Empress MySQL Velocis
    FilePro msSQL-odbc Unix dbm
    Informix PostgreSQL Oracle

    В добавка към всичко това PHP разпознава протоколите IMAP, SNMP, NNTP, POP3 и даже HTTP, а така също има възможност за работа със сокети (sockets) и да комуникира с други протоколи.

    Кратка история на PHP.

    За начало на PHP може да се счита есента на 1994 год., когато Rasmus Lerdorf решава да разшири възможностите на своята Home-page и написва неголям интерпретатор за изпълнение на по-простите задачи. Този интерпретатор готов в началото на 1995 година с названието Personal Home Page Tools. Възможностите му са ограничени – разпознавал опростен език и няколко макроса.

    В средата на 1995 година се появява втора версия, с названието PHP/FI Version 2. Приставката FI – е присъединена от друг пакет на Rasmus, който умее да обработва форми (Form Interpritator). PHP/FI се компилира в Apache и използва стандартно API Apache. PHP скриптовете се оказали по-бързи от аналогичните CGI – скриптове.На сървъра не било необходимо да поражда нов процес. Езикът PHP по възможности започнал да доближава Perl, най-популярният език за написване на CGI-програми. Добавена е подръжка на много от известните БД (например, MySQL и Oracle). Интерфейсът към GD – библиотеката, позволявал генериране на картинки на лету. От този момент започва широкото разпространение на PHP/FI.

    В края на 1997 Zeev Suraski и Andi Gutmans решават да пренапишат ядрото, с цел коригиране грешките на интерпретатора и повишаване скоростта на изпълнение на скриптовете. На 6 юни 1998 година излиза нова версия, която е наречена PHP 3.

    До лятото на 1999 година PHP 3 е включен в няколко комерсиални продукта. По данни на NetCraft до ноември 1999 PHP се използва в повече от 1 млн. домейна.

    Защо да изберем PHP ?

    На разрабтващите Web-приложения, не е необходимо да бъде обяснявано, че web-страниците – не са само текст и картинки. Сайтът достоен за внимание е длъжен да подържа някакво ниво на интерактивност с потребителите: искане на информации, продажба на продукти, конференции и т.н. Традиционно всичко това се реализира от CGI-скриптовете, написани на Perl. Но CGI- скриптовете са лошо мащабирани. Всяко ново CGI запитване, изисква от ядрото пораждане на нов процес, а това отнема процесорно време и затормозява оперативната памет. PHP предлага друг вариант – той работи в часта Web-сървър и по това прилича на ASP от Microsoft.

    Синтаксисът на PHP много наподобява този на C или Perl. Хора, запознати с програмирането, много бързо могат да започнат да пишат програми на PHP. В този език няма строга типизация на данните и отпада необходимоста от действията по заделяне/освобождаване на памет.

    Програмите, написани на PHP, са достатъчно лесночитаеми. Написаният PHP – код е зрително лесно разбираем и запомнящ се, за разлика от Perl-програмите.

    Какво е MySQL.

    MySQL – компактен многопоточен сървър за БД. MySQL се характеризира с голяма скорост , устойчивост и лекота в използването.

    MySQL е разработен от компанията TcX за вътрешни нужди, които се заключават в бързата обработка на много големи бази данни. Компанията отбелязва, че използва MySQL от 1996 година на сървър с повече от 40 БД, които съдържат 10,000 таблици, от които повече от 500 имат повече от 7 милиона реда.

    MySQL е идеално решение за малки и средни приложения. Най-пълно разкриване на възможностите на сървъра, се проявяват на Unix-сървъри, където многопоточната подръжка, дава значителен прираст на производителността .

    Възможности на MySQL.

    MySQL подържа езика SQL в стандарта ANSI 92, и освен това има много разширения в този стандарт, които ги няма в друга СУБД.

    Кратък преглед на возможностите на MySQL.

    Поддържа неограничено количество потребители, едновременно работещи с базата данни.

    Количеството редове в таблиците може да достига 50 млн.

    Бързо изпълнение на командите. MySQL е най-бързият сървър от съществуващите.

    Проста и ефективна система за безопасност. MySQL наистина е много бърз сървър, но за постигането на това разработчиците са жертвали някои изисквания към релационната СУБД.
    По думите на създателите именно точки 2-4 са дали възможност за достигане на високо бързодействие. Релацията съществено понижава скоростта на сървъра, но тези неща не се явяват критични при създаването на Web-приложения. Комбинацията от високо бързодействие и ниска цена дава на сървъра изключителна популярност.

    Примери с използване на PHP

    Работа с форми.

    В този пример е показано как в PHP леко се обработват данни с HTML – форма.

    Създаваме прост HTML файл.

    <HTML>
    <HEAD>
    <TITLE>Въвеждане на нформация за запитване</TITLE>
    <BODY>
    <CENTER>
    Искате ли да научите повече за нашите продукти?
    <P>
    <TABLE WIDTH = 400><TR><TD align = right>
    <FORM ACTION="email.php3" METHOD="POST">
    Вашето име:<BR>
    <INPUT TYPE="text" NAME="name" SIZE=20 MAXLENGTH="30">
    <P>
    Вашият email:<BR>
    <INPUT TYPE="text" NAME="email" SIZE=20 MAXLENGTH="30">
    <P>
    Мен ме интересува:
    <SELECT NAME="preference">
    <OPTION value = "Ябълки">Ябълки
    <OPTION value = "Портокали">Портокали
    </SELECT>
    <P>
    <INPUT TYPE="submit" VALUE="Изпрати запитване!">
    </FORM>
    </TD></TR></TABLE></CENTER>
    </BODY>
    </HTML>

    Назоваваме този файл request.html. В него указваме, че данните от формата ще бъдат обработвани от файл email.php3. Ето неговото съдържание:

    <?
    /* Този скрипт получава променливи от request.html */
    PRINT "<CENTER>";
    PRINT "Здравей, $name.";
    PRINT "<BR><BR>";
    PRINT "Благодаря за вашият интерес.<BR><BR>";
    PRINT "Интересувате се от $preference. Информацията за тях ще Ви изпратим на email: $email.";
    PRINT "</CENTER>";
    ?>

    Сега, ако потребителя извика request.html и въведе във формата „Пешо“, email: pesho@pupkin.com и отбележи, че го интересуват „Ябълки“, а след това натисне „Отправи запитване!“, то в отговор ще се извика email.php3, който ще изведе на екрана следното:

    Здравей, Пешо

    Благодаря за Вашият интерес.

    Интересувате се от Ябълки. Информацията за тях ще Ви изпратим на email: pesho@pupkin.com

    Сега сме длъжни да спазим обещанието и да изпратим email.

    За това в PHP съществува функцията MAIL.

    Синтаксис: void mail(string to, string subject, string message, string add_headers);

    to – email адрес на получателя.

    subject – тема на писмото.

    message – самият текст на съобщението.

    add_headers – други параметри (незадължителен параметър).

    Дописваме в края на файла email.php3 следният код:

    <?
    mail($email, "Запитване за информация", "$name
    Благодаря за вашият интерес!
    Интересувате се от $preference
    Разпространяваме ги безплатно. Обърнете се към най близкият филиал на нашата фирма и ще получите предвиденото количество.
    ");
    mail("administration@me.com",
    "има запитване за информация.",
    "$name се интерусва от $preference
    email-адрес: $email. ");
    ?>

    Сега потребителят ще получи писмо с по-подробна информация относно нашите продукти. Писмото ще получи и администратора на сайта.

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

    Работа с MySQL (съхранение на данните в база данни).

    За начало създаваме база данни и таблица. Влизаме в MySQL, и изпълняваме командата:

    CREATE DATABASE products;

    CREATE TABLE clients (name VARCHAR(25), email VARCHAR(25), choise VARCHAR(Cool;

    за връзка с MySQL от PHP са необходими следните функции.

    int mysql_connect(string hostname, string username, string password);

    Създава връзка с MySQL.

    Параметри:

    Hostname – име на хоста, където се намира базата данни.

    Username – име на потребителя.

    Password – парола на потребителя.

    Функцията връща параметър от тип int, който е по-голям от 0, ако връзката е протекла успешно, и равен на 0 в противен случай.

    int mysql_select_db(string database_name, int link_identifier);

    Избира база данни за работа.

    Параметри:

    Database_name – име на базата данни.

    link_identifier – ID на връзката, получено във функцията mysql_connect. (параметъра не е задължителен, ако не е указан, се използва ID от последното извикване на mysql_connect)

    Функцията връща стойнос true или false

    int mysql_query(string query, int link_identifier);

    Функцията изпълнява запитване към базата данни.

    Параметри:

    Query – ред, съдържащ запитване

    link_identifier – виж предишната функция.

    Функцията връща ID резултата или 0, ако е произтекла грешка.

    int mysql_close(int link_identifier);

    Функцията закрива връзката с MySQL.

    Параметри

    link_identifier – виж горе.

    Функцията връща стойност true или false

    Сега нашият файл email.php3 ще има следният вид:

    <?
    /* Този скрипт получава променливи от request.html */
    
    /* Някои променливи */
    
    $hostname = "localhost";
    $username = "myusername";
    $password = "mypassword";
    $dbName = "products";
    
    /* Таблица в MySQL, в която се съхраняват данните */
    $userstable = "clients";
    
    /* email на администратора */
    $adminaddress = "administration@me.com";
    
    /* създаване на връзка */
    MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не мога да създам връзка ");
    
    @mysql_select_db("$dbName") or die("Не мога да избера базата данни ");
    
    PRINT "<CENTER>";
    PRINT "Здравей, $name.";
    PRINT "<BR><BR>";
    PRINT "Благодаря за вашият интерес.<BR><BR>";
    PRINT "Интересувате се от $preference. Информацията за тях ще Ви изпратим на email: $email.";
    PRINT "</CENTER>";
    
    /* Изпращаме email */
    mail($email, "Запитване за информация", "$namen
    Благодаря за вашият интерес.!
    Интересувате се от $preference
    Разпространяваме ги безплатно. Обърнете се към най близкият филиал на нашата фирма и ще получите предвиденото количество.
    ");
    
    mail("administration@me.com",
    "Има запитване за информация.",
    "$name се интересува от $preference
    email-адрес: $email. ");
    
    /* Въвеждане на информацията за клиента в таблица */
    $query = "INSERT INTO $userstable VALUES('$name','$email', '$preference')";
    
    $result = MYSQL_QUERY($query);
    
    PRINT "Информацията за вас е въведена в базата данни.";
    
    /* Затваряне на връзката */
    MYSQL_CLOSE();
    ?>
    
    Ето колко леко се работи с база данни в PHP. Сега писменото уведомяване, информацията за клиента и неговите интереси ще бъдат предадени в MySQL таблица.
    
    Работа с MySQL (получаване на данни от базата данни).
    
    Съхранявайки данните, в един момент ще си зададем въпроса " Кой от нашите клиенти се интересуваше от "Ябълки" ?"
    
    Написваме скрипта apple.php3
    
    <?/* Показва тези които обичат повече ябълки, отколкото портокали */
    $hostname = "localhost";
    $username = "myusername";
    $password = "mypassword";
    $dbName = "products";
    
    /* Таблица MySQL, в която се съхраняват данни */
    $userstable = "clients";
    
    /* създава връзка */
    MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не мога да създам връзка ");
    
    @mysql_select_db("$dbName") or die("Не мога да избера база данни ");
    
    /* Избиране на всички почитатели на ябълките */
    $query = "SELECT * FROM $userstable WHERE choice = 'Ябълки'";
    
    $result = MYSQL_QUERY($query);
    
    /* Колко много има от тях */
    $number = MYSQL_NUMROWS($result);
    
    /* Напечатване в красив вид*/
    $i = 0;
    
    IF ($number == 0) {
    PRINT "<CENTER><P>Няма любители на ябълки</CENTER>";
    } ELSEIF ($number > 0) {
    PRINT "<CENTER><P>Брой на любителите на ябълки: $number<BR><BR>";
    WHILE ($i < $number){
    $name = mysql_result($result,$i,"name");
    $email = mysql_result($result,$i,"email");
    PRINT "Клиент $name обича ябълки.<BR>";
    PRINT "Неговият Email: $email.";
    PRINT "<BR><BR>";
    $i++;
    }
    PRINT "</CENTER>";
    }
    ?>

    Тук сме използвали две нови функции:

    int mysql_num_rows(int result);

    Функцията връща броя редове в резултат от запитването.

    Параметъра result – съдържа ID резултата от запитването.

    int mysql_result(int result, int i, column);

    Функцията връща стойноста на полето в колона column и в ред i.

    Урока е изготвен от www.transcode.org

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