Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
PBD
Site cu baze de date despre filme
Descriere generala a proiectului
Acest site are drept scop furnizarea informatiilor exclusiv legate de lumea filmului, informatii ca detalii despre un anumit film, despre actorii care interpreteaza in acesta, despre locurile unde poate vizionat, data si orele de difuzare, precum si adresele si capacitatea cinema-urilor in care poate fi vazut. Aceste informatii sunt usor accesibile printr-un motor de cautare in functie de diferite conditii care face posibila gasirea rapida si usoara a datelor dorite.
Situl este gazduit pe un server Apache, baza de date este gestionate cu MySQL cu ajutorul scripturilor PHP. Am folosit HTML-ul ca mijloc de dezvoltare a interfetei site-ului si scripturile PHP pentru interactiunea cu Baza de Date.
Baza de date a site-ului (PBD) contine 5 tabele cu urmatoarea structura:
Name |
Type |
PRIMARY |
Id |
NewIndex |
Titlu |
Name |
Type |
NULL |
Default |
Extras |
Comment |
Id |
int(11) |
auto_increment | |||
Titlu |
varchar(255) | ||||
An_productie |
year(4) | ||||
Tara_productie |
varchar(30) |
NULL | |||
Actor_principal |
varchar(30) | ||||
Regizor |
varchar(30) | ||||
Gen |
varchar(30) |
Name |
Type |
PRIMARY |
Id |
NewIndex |
Nume |
Name |
Type |
NULL |
Default |
Extras |
Comment |
Id |
int(11) |
auto_increment | |||
Nume |
varchar(30) | ||||
Data_nasterii |
date | ||||
Locul_nasterii |
varchar(30) | ||||
Film_de_referinta |
varchar(255) |
Name |
Type |
PRIMARY |
Id |
NewIndex2 |
Titlu |
Name |
Type |
NULL |
Default |
Extras |
Comment |
Id |
int(11) |
auto_increment | |||
Titlu |
varchar(255) | ||||
Durata |
int(3) | ||||
Data_difuzare |
date |
Name |
Type |
PRIMARY |
Id |
Name |
Type |
NULL |
Default |
Extras |
Comment |
Id |
int(11) |
auto_increment | |||
Nume_cinema |
varchar(30) | ||||
Titlu |
varchar(255) | ||||
Ora |
datetime |
Name |
Type |
PRIMARY |
Id |
NewIndex |
Nume_cinema |
Name |
Type |
NULL |
Default |
Extras |
Comment |
Id |
int(11) |
auto_increment | |||
Nume_cinema |
varchar(30) | ||||
Nr_locuri |
int(3) | ||||
Adresa |
varchar(255) |
Dupa cum se vede intre aceste aceste tabele nu exista relatii explicite precum chei externe, ci intre ele am stabilit o relatie intrinseca determinata pe baza modului de gesitonare cu ajutorul codului.
Astfel informatiile in fiecare tabela pot fi introduse individual, dar la eliminare se tine cont de relatiile stabilite intre acestea. Spre exemplu cand are loc o eliminare din tabela "filme" sunt eliminate toate intrarile legate de filmul respectiv din tabelele "info_filme" si "cinema", intrucat acestea nu mai sunt necesare.
Interfata este foarte simpla ea permitand atat cautarea rapida a informatiilor pe baza unui set de conditii si a unei fractiuni de nume, cat si stergerea sau inserarea in fiecare tabela prin intermediul formularelor.
S-a incercat o implementare cat mai practica a interfetei care nu dispune de detalii elaborate pentru a usura folosirea si de asemenea pentru a obtine un timp cat mai bun de incarcare a paginii nu sunt folosite imagini de dimensiuni mari iar dimensiunile pentru poze sunt specificate in cod.
Site-ul are 3 zone distincte:
zona sperioara care permite vizionarea tabelelor prin intermediul scripturilor de selectie si afisare;
zona de cautare care pemite realizarea de cautare in functie de anumite conditii si dupa nume;
zona de lucru unde sunt afisate toate rezultatele actiunilor in primele 2 zone;
Corespunzator zonei superioare exista un script HTML care directioneaza linkurile catre scripturi PHP ca urmatorul:
<html>
<head>
</head>
<body background='jamesdean.jpg'>
<center>
<?php
$connection = mysql_connect('localhost','root','123456');
mysql_select_db('pbd', $connection);
$result = mysql_query ('SELECT * FROM filme ORDER BY Titlu ASC ', $connection);
$num=mysql_numrows($result);
mysql_close();
include('listfilme.php');
?>
</table>
<table border=0 cellpadding=5 cellspacing=20>
<th>
<a href='adauga_filme.html' target='work'> <font color='#40A0F0' size=3><b>ADAUGA</b></font></a>
</th>
<th>
<a href='elimina_filme.html' target='work'> <font color='#40A0F0' size=3><b>STERGE</b></font></a>
</th>
</table>
</center>
</body>
</html>
Dupa cum se vede acest script realizeaza conectarea la o baza de date din care preia tabela pe care o afiseaza in pagina HTML. Fisierul "listfilme.php" contine portiunea de cod care realizeaza afisarea datelor intr-un tabel pe pagina HTML si este facut separat pentru a evita multiplicarea de cod.
Formularul de cautare din zona stanga are urmatorul cod HTML:
<html>
<head>
<title>Proiect PBD</title>
</head>
<body bgcolor='black' text='#6060BA'>
<img src='im1.jpg'>
<br><br>
<center>
<form action='search.php' method='post' target='work'>
<h4>Selectati una din optiunile de cautare:<h4>
<select name='selectie' >
<option value='filmt'>Cauta film dupa titlu</option>
<option value='filma'>Cauta film dupa actor</option>
<option value='actorn' selected>Cauta actor dupa nume</option>
<option value='cinemaf' >Cauta cinema dupa film</option>
<option value='cineman' >Cauta cinema</option>
</select>
<br>
<h4>Scrieti numele sau o fractiune din acesta:<h4>
<input type='text' name='txt' size='23' maxlength='30'>
<br>
<h4> Apasati pentru a cauta in baza de date:<h4>
<input type='submit' value='Cauta'>
</form>
<br>
<img src='im5.jpg' width='160' >
</center>
</body>
</html>
Acesta foloseste ca actiune pentru formular scriptul PHP:
<html>
<head>
</head>
<body background='jamesdean.jpg'>
<center>
<?php
$selectie = $_POST['selectie'];
$txt = $_POST['txt'];
$connection = mysql_connect('localhost','root','123456');
mysql_select_db('pbd', $connection);
if ($selectie=='actorn')
$result = mysql_query ('SELECT * FROM actori WHERE Nume LIKE '%$txt%' ORDER BY Nume ASC ', $connection);
else if ($selectie=='filmt')
$result = mysql_query ('SELECT * FROM filme WHERE Titlu LIKE '%$txt%' ORDER BY Titlu ASC', $connection);
else if ($selectie=='filma')
$result = mysql_query ('SELECT * FROM filme WHERE Actor_principal LIKE '%$txt%' ORDER BY Actor_principal ASC', $connection);
else if ($selectie=='cinemaf')
$result = mysql_query ('SELECT * FROM cinema WHERE Titlu LIKE '%$txt%' ORDER BY Nume_cinema ASC', $connection);
else if ($selectie=='cineman')
$result = mysql_query ('SELECT * FROM info_cinema WHERE Nume_cinema LIKE '%$txt%' ORDER BY Nume_cinema ASC', $connection);
else exit(1);
$num=mysql_numrows($result);
mysql_close();
if ($num==0)
if ($selectie=='actorn')
include('listactori.php');
else if ($selectie=='filmt' || $selectie=='filma')
include('listfilme.php');
else if ($selectie=='cinemaf')
include('listcinema.php');
else if ($selectie=='cineman')
include('listinfocinema.php');
?>
</table>
</center>
</body>
</html>
Copyright © 2024 - Toate drepturile rezervate