CATEGORII DOCUMENTE |
mt_srand() - initializeaza generatorul de numere aleatoare. Prototipul ei este:
int mt_srand (int numar).
Argumentul este un numar oarecare, de obicei fiind generat folosind functia time().
mt_rand() - returneaza un numar aleator cuprins intre o valoare minima si una maxima. Prototipul ei este:
int mt_rand (int mini, int maxi).
Exemplu:
mt_srand(time());
$nr = mt_rand(0, 1000);
echo $nr;
mail() - permite trimiterea unui e-mail dintr-un script. Prototipul ei este:
bool mail(string to, string subject, string message [, string additional_info]).
Exemplu:
$mesaj = 'Comanda dv. a fost inregistrata si va fi tratata cu prioritate';
$adr = 'JohnDoe@somwhere.net';
mail($adr, 'Subject Confirmare', $mesaj,
'From: Internationnal TradernReply-to: numelemeu@yahoo.com');
include() - permite includerea unui fisier in scriptul curent. Prototipul ei este:
include (string nume_fisier).
Observatie: La intrarea in fisierul inclus se trece automat in mod HTML, deci daca trebuie inclusa o secventa in PHP trebuie rescris marcajul <?php
Exemplu:
h.php: <html><head><title><?php echo $titlu; ?> </title> </head>
<body bgcolor=yellow>
index.php: <?php
$titlu = 'Pagina Web a S.C. Comert International';
include('h.php');
. . . // continutul paginii
Aplicatie (10)
a. Utilizand aplicatia phpMyAdmin, modificati in tabelul rezervari, tipul campului data din INT(6) in DATE si reintroduceti datele pentru care au fost efectuate rezervarile. Modificati si caracteristicile campului codrez din tabelul rezervari si a campului codhot din tabelul hoteluri astfel incat ambele sa devina auto_increment.
b. Porniti aplicatia xampp. c:xamppxampp_start.exe Atentie! Nu inchideti fereastra aplicatiei xampp ! Pentru oprirea acesteia executati fisierul c:xamppxampp_stop.exe
c. Creati fisierul admin.html care va fi utilizat ca principalul fisier al unei aplicatii de exploatare si intretinere a bazei de date perla. Salvati acest fisier in directorul c:xampphtdocsperla.
Fig. 5.7 Modelul fisierului admin.html
<html>
<head><title>Administrare baza de date</title>
<link rel='stylesheet' type='text/css' href='stilform.css'>
</head>
<body background='tree.jpg'>
<h2 align='center'>Administrarea bazei de date</h2>
<p align=center><form action='listhotel.php' method=post>
<input type=submit value='Lista spatiilor de cazare'></form></p>
<p align=center><form>
<input type=button value='Adaugare spatii de cazare' onClick='location.href='adaughotel.html''></form></p>
<p align=center><form action='listcli.php' method=post>
<input type=submit value='Lista clientilor care au efectuat rezervari'></form></p>
<p align=center><form action='listrezerv.php' method=post>
<input type=submit value='Lista rezervarilor efectuate'>
</form></p>
<p align=center><form action='selectcaz.php' method=post>
<input type=submit value='Lista clientilor unui anumit spatiu de cazare'></form></p>
</body>
</html>
Fisierul admin.html poate fi descarcat de pe situl cartii, de la adresa www.infoap.utcluj.ro/multi.html/
d. Scrieti fisierul listhotel.php care va interoga baza de date perla in vederea afisarii tuturor informatiilor disponibile, despre toate spatiile de cazare din statiune.
Fig. 5.8 Modelul fisierului listhotel.php
listhotel.php
<HTML>
<BODY background=tree.jpg>
<?php
// Conectarea la serverul MySQL cu ajutorul functiei mysql_connect
//Ce semnificatie au cele doua grupuri de *****? Dupa ce ati raspuns corect, inlocuiti aceste semne cu valorile corecte!
mysql_connect('localhost', '*****', '*****') or die ('Nu ma pot conecta la server');
//Selectarea bazei de date cu ajutorul functiei mysql_select_db
mysql_select_db('perla') or die ('Nu pot selecta baza de date');
//Construirea frazei SQL si a variabilei $query avand ca valoare fraza SQL
$query = 'select * from hoteluri';
//Fraza SQL este transmisa serverului MySQL prin intermediul functiei mysql_query avand ca parametru variabila $query
//Rezultatul interogarii este atribuit variabilei $rezult urmand sa fie prelucrat ulterior in vederea afisarii informatiilor
$result = mysql_query($query) or die (mysql_error());
echo '<h3 align=center>Lista spatiilor de cazare din statiunea Perla</h3>';
echo '<table align=center border=1 bordercolor=#008080 cellspacing=0 cellpadding=5>';
//In prima faza a redactarii scriptului, se poate sari peste acest echo, care genereaza un cap de tabel cu marcaje <th>
echo '<tr align=center><th>Nr. crt.</th> <th>Denumirea</th> <th>Tip</th> <th>Categoria</th> <th>Nr. cam. single</th> <th>Nr. cam. duble</th><th>Nr. apartamente</th></tr>';
//Cu ajutorul functiei mysqli_fetch_array avand ca parametru variabila $rezult se preia un rand din rezultatul interogarii
//Contiunutul acestui rand este atribuit variabilei $row urmand a fi afisat in continuare, cat timp exista randuri
while ($row = mysqli_fetch_array($result))
echo '</table>';
echo '<p align=center><form><input type=button value='Revenire' onClick='location.href='admin.html''></form></p>';
?></BODY></HTML>
e. Creati fisierele adaughotel.html si adaughotel.php necesare realizarii celei de-a doua functii a aplicatiei de gestionare a bazei de date perla. Pentru scrierea de noi inregistrari, corespunzator unor noi spatii de cazare, in tabelul hoteluri din baza de date, cu ajutorul scriptului adaughotel.php este necesara utilizarea prealabila a formularului adaughotel.html pentru culegerea datelor.
Fig. 5.9 Modelul fisierului adaughotel.html si adaughotel.php
Observatie: In fisierul admin.html butonul corespunzator acestei functii a aplicatiei de gestionare a bazei de date, nu este un buton submit (singura exceptie.)!
adaughotel.html (poate fi descarcat de pe pagina web a cartii)
<html>
<head><title>Adaugare spatii de cazare</title></head>
<body background='tree.jpg'>
<h3 align='center'>Adaugare spatii de cazare in baza de date</h3>
<form action='adaughotel.php' method=post>
<table align='center' width=450 cellspacing='10' cellpadding='0' border='0'>
<tr>
<td colspan=2><hr></td>
</tr>
<tr>
<td width=50%>Denumirea</td>
<td width=50%><input type='text' name='nume' size='30'></td>
</tr>
<tr>
<td>Tip</td>
<td><input type='text' name='tip' size='2'></td>
</tr>
<tr>
<td>Categoria</td>
<td><input type='text' name='categ' size='2'></td>
</tr>
<tr>
<td>Numarul de camere single</td>
<td><input type='text' name='nrcam1' size='2'></td>
</tr>
<tr>
<td>Numarul de camere duble</td>
<td><input type='text' name='nrcam2' size='2'></td>
</tr>
<tr>
<td>Numarul de apartamente</td>
<td><input type='text' name='nrap' size='2'></td>
</tr>
<tr>
<td colspan=2><hr></td>
</tr>
<tr>
<td><input type=reset value='Sterge valorile'></td>
<td><input type=submit value='Adaugare spatiu de cazare'></td>
</tr>
</table>
</form>
<p align=center>
<form>
<input type=button value='Revenire' onClick='location.href='admin.html''>
</form>
</body>
</html>
adaughotel.php
<HTML>
<?php
mysql_connect('localhost', '*****', '*****') or die ('Nu ma pot conecta la server');
mysql_select_db('perla') or die ('Nu pot selecta baza de date');
//Fraza SQL este de tip insert
//Valoarea campului codhot nu este transmisa, deoarece acesta este de tip auto_increment
$query='INSERT INTO hoteluri (codhot, nume, tip, categ, nrcam1, nrcam2, nrap)
VALUES ('', '$nume', '$tip', '$categ', '$nrcam1', '$nrcam2', '$nrap')
$result = mysql_query($query) or die (mysql_error());
echo '<p align=center>Datele despre spatiul de cazare <b> $nume </b> au fost introduse in baza de date.</p>';
echo '<p align=center><form><input type=button value='Revenire' onClick='location.href='admin.html''></form></p>';
?>
</HTML>
f. Realizati o copie a fisierului rezervari.html cu numele rezerv.php dupa care modificati secventa de cod prin care este selectat spatiul de cazare pentru care este realizata rezervarea, prin inserarea unui script php, care citeste denumirile spatiilor de cazare din baza de date si le scrie ca optiuni in <select>. Schimbati textul care se afiseaza pe butonul submit, conform modelului si schimbati in marcajul <form> numele scriptului php asociat formularului, in efectuare_rezervari.php
Fig. 5.10 Modelul fisierului rezerv.php si efectuare_rezervari.php
rezerv.php (poate fi descarcat de pe pagina web a cartii)
<form action='efectuare_rezervari.php' method='post'>
<h2 align='center'>REZERVARI -
<select name='codhot'>
<option selected value='initial'>(Alege cazarea)</option>
<?php
mysql_connect('localhost', '*****', '*****') or die ('Nu ma pot conecta la server');
mysql_select_db('perla') or die ('Nu pot selecta baza de date');
$query = 'select * from hoteluri';
$result = mysql_query($query) or die (mysql_error());
while ($row = mysqli_fetch_array($result))
?>
</select>
</h2>
efectuare_rezervari.php (poate fi descarcat de pe pagina web a cartii)
<HTML>
<?php
mysql_connect('localhost', '*****', '*****') or die ('Nu ma pot conecta la server');
mysql_select_db('perla') or die ('Nu pot selecta baza de date');
//Inceput determinare cod client - (codcli)
$query = 'SELECT * FROM clienti';
$result = mysql_query($query) or die (mysql_error());
//Variabilei $nrinreg i se atribuie valoarea numarului de inregistrari din tabelul clienti (egala cu ultimul codcli)
$nrinreg = mysqli_num_rows($result);
while ($row = mysqli_fetch_array($result))
else $codcli = $nrinreg + 1;
}
//Sfarsit determinare cod client - (codcli)
$tip_cam = $tip_cam + 1; //Valorile asociate butoanelor radio din formular sunt 0, 1 si 2
//Valorile care trebuie inregistrate in tabelul rezervari din baza de date pentru campul tipcam sunt 1, 2 sau 3
//Informatiile din formular privind rezervarea si codul clientului determinat anterior, sunt inregistrate in tabelul rezervari
$query = 'INSERT INTO rezervari (codrez, codcli, codhot, tipcam, data, nrzile)
VALUES ('', '$codcli', '$codhot', '$tip_cam', '$data', '$nrzile')
$result = mysql_query($query) or die (mysql_error());
//Informatiile din formular despre client (mai putin CNP) sunt inregistrate in tabelul clienti, numai daca este un client nou
if ($codcli > $nrinreg)
//Mesaj afisat pentru toti clientii
echo '<p align=center>Rezervarea Dvs. a fost inregistrata</p>';
//Mesajul afisat pentru clientii noi, este diferit de cel afisat pentru clientii care au mai efectuat rezervari
if ($codcli > $nrinreg)
else
echo '<p align=center><form><input type=button value='Revenire' onClick='location.href='rezerv.php''></form></p>';
?>
</HTML>
g. Modificati fisierul listhotel.php adaugand in functia echo pentru afisarea capului de tabel, atributul bgcolor = #00aaaa in cadrul marcajului <tr>. Acest element va imbunatati aspectul tabelului afisat.
<tr align = center bgcolor = #00aaaa>
Utilizati acest atribut in toate scripturile care urmeaza sa fie scrise in continuare si care afiseaza informatii (rapoarte) din baza de date.
h. Adaugati in fisierul stilform.css urmatoarele atribute:
th
h3
i. Adaugati in toate fisierele *.html si *.php create deja, sau care urmeaza sa fie create, in sectiunea <head>, marcajul <link> pentru apelarea acestui stil, ceea ce va imbunatati substantial aspectul aplicatiei realizate.
<HEAD><link rel='stylesheet' type='text/css' href='stilform.css'></HEAD>
Munca independenta
Realizati fisierul listcli.php care afiseaza lista clientilor care au efectuat rezervari.
Fig. 5.11 Modelul fisierului listcli.php
Observatie: Nr. crt. corespunde de fapt codului clientului (codcli), iar inregistrarile 9, 10, 11 si 12, care nu contin CNP, au fost realizate utilizand fisierele rezerv.php si efectuare_rezervare.php
listcli.php (poate fi descarcat de pe pagina web a cartii)
<HTML>
<HEAD><link rel='stylesheet' type='text/css' href='stilform.css'></HEAD>
<BODY background=tree.jpg>
<?php
mysql_connect('localhost', '*****', '*****') or die ('Nu ma pot conecta la server');
mysql_select_db('perla') or die ('Nu pot selecta baza de date');
$query = 'select * from clienti';
$result = mysql_query($query) or die (mysql_error());
echo '<h3 align=center>Lista clientilor care au efectuat rezervari in statiunea Perla</h3>';
echo '<table align=center border=1 bordercolor=#008080 cellspacing=0 cellpadding=5>';
echo '<tr align=center bgcolor = #00aaaa><th>Nr. crt.</th> <th>Numele</th>
<th>Prenumele</th> <th>e-mail</th> <th>Telefon</th> <th>C.N.P.</th></tr>';
while ($row = mysqli_fetch_array($result))
echo '</table>';
echo '<p align=center><form><input type=button value='Revenire'
onClick='location.href='admin.html''></form></p>';
?>
</body>
</HTML>
Realizati fisierul listrezerv.php pentru afisarea rezervarilor care au fost efectuate.
Fig. 5.12 Modelul fisierului listrezerv.php
listrezerv.php (poate fi descarcat de pe pagina web a cartii)
<HTML>
<HEAD><link rel='stylesheet' type='text/css' href='stilform.css'></HEAD>
<BODY background=tree.jpg>
<?php
mysql_connect('localhost', '*****', '*****') or die ('Nu ma pot conecta la server');
mysql_select_db('perla') or die ('Nu pot selecta baza de date');
$query = 'SELECT rezervari.codrez, clienti.nume, clienti.prenume, hoteluri.nume, rezervari.tipcam, rezervari.data, rezervari.nrzile FROM clienti, hoteluri, rezervari WHERE ((rezervari.codcli =clienti.codcli)AND(rezervari.codhot =hoteluri.codhot)) ORDER BY rezervari.codrez ASC';
$result = mysql_query($query) or die (mysql_error());
echo '<h3 align=center>Lista rezervarilor efectuate in statiunea Perla</h3>';
echo '<table align=center border=1 bordercolor=#008080 cellspacing=0 cellpadding=5>';
echo '<tr align=center bgcolor = #00aaaa><th>Nr. rez.</th> <th>Numele</th> <th>Prenumele</th> <th>Cazare</th> <th>Tip camera</th> <th>Data sosirii</th><th>Nr. zile</th></tr>';
while ($row = mysqli_fetch_array($result))
echo '</table>';
echo '<p align=center><form><input type=button value='Revenire' onClick='location.href='admin.html''></form></p>';
?>
</body>
</HTML>
Realizati fisierele selectcaz.php si listrezervcaz.php necesare pentru afisarea rezervarilor care au fost efectuate la un anumit spatiu de cazare.
Fig. 5.13 Modelul fisierului selectcaz.php
Fig. 5.14 Modelul fisierului listrezervcaz.php
selectcaz.php (poate fi descarcat de pe pagina web a cartii)
<html>
<head>
<title>Selectare spatiu de cazare</title>
<HEAD><link rel='stylesheet' type='text/css' href='stilform.css'></HEAD>
</head>
<body background='tree.jpg'>
<h3 align='center'>Selectare spatiu de cazare</h2>
<form action='listrezervcaz.php' method=post>
<table align='center' width=450 cellspacing='10' cellpadding='0' border='0'>
<tr>
<td colspan=2><hr></td>
</tr>
<tr>
<td width=50%>Denumirea</td>
<td width=50%>
<select name='codhot'>
<option selected value='initial'>(Alege cazarea)</option>
<?php
mysql_connect('localhost', '*****', '*****') or die ('Nu ma pot conecta la server');
mysql_select_db('perla') or die ('Nu pot selecta baza de date');
$query = 'select * from hoteluri';
$result = mysql_query($query) or die (mysql_error());
while ($row = mysqli_fetch_array($result))
?>
</select>
</td>
</tr>
<tr>
<td colspan=2><hr></td>
</tr>
</table>
<p align=center>
<form>
<input type=submit value='Confirmare spatiu de cazare'>
</form>
</form>
<p align=center>
<form>
<input type=button value='Revenire' onClick='location.href='admin.html''>
</form>
</body>
</html>
listrezervcaz.php (poate fi descarcat de pe pagina web a cartii)
<HTML>
<HEAD><link rel='stylesheet' type='text/css' href='stilform.css'></HEAD>
<BODY background=tree.jpg>
<?php
mysql_connect('localhost', '*********', '********') or die ('Nu ma pot conecta la server');
mysql_select_db('perla') or die ('Nu pot selecta baza de date');
echo '<h3 align=center>Lista clientilor care au efectuat rezervari la ';
$fraza = 'SELECT hoteluri.nume FROM hoteluri WHERE (hoteluri.codhot=$codhot)';
$rezultat = mysql_query($fraza) or die (mysql_error());
$rand = mysqli_fetch_array($rezultat);
echo $rand[nume];
echo '</h3>';
$query = 'SELECT clienti.nume, clienti.prenume, rezervari.tipcam, rezervari.data, rezervari.nrzile
FROM clienti, hoteluri, rezervari
WHERE ((rezervari.codhot = $codhot) AND (clienti.codcli =rezervari.codcli) AND (hoteluri.codhot =rezervari.codhot)) ORDER BY rezervari.data ASC';
$result = mysql_query($query) or die (mysql_error());
echo '<table align=center border=1 bordercolor=#008080 cellspacing=0 cellpadding=5>';
echo '<tr align=center bgcolor = #00aaaa> <th>Numele</th> <th>Prenumele</th> <th>Tip
camera</th> <th>Data sosirii</th><th>Nr. zile</th></tr>';
while ($row = mysqli_fetch_array($result))
echo '</table>';
echo '<p align=center><form><input type=button value='Revenire'
onClick='location.href='admin.html''></form></p>';
?>
</body>
</HTML>
Observatie: In functie de necesitatile operatiilor de exploatare si intretinere a bazei de date, pot fi scrise si o serie de alte scripturi. Asa cum a fost scrisa aplicatia prezentata, ar fi obligatorie scrierea unui script pentru actualizarea tabelului clienti prin completarea CNP, aceasta informatie putand fi introdusa in baza de date, de la receptia spatiului de cazare, dupa ce este preluata aceasta informatie din actul de identitate al clientului. Fisierele necesare pentru realizarea acestei operatii de actualizare, nu vor fi accesibile din zona publica a sitului si nici administratorului bazei de date, ci functionarilor de la receptiile spatiilor de cazare.
Exemplul prezentat opereaza cu date de tip char, date, int, dar exista posibilitatea de a insera si imagini in baza de date. O solutie in acest sens poate fi cea prezentata pe situl scolii la adresa https://www.infoap.utcluj.ro/multi/bd_imag.html
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1178
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved