100 likes | 177 Views
PHP Souhrnné cvičení 4 - 19. Mgr. Josef Nožička. IKT PHP. www.zlinskedumy.cz. Zadání příkladu. S pomocí PHP a MySQL naprogramujte databázi pro evidenci zaměstnanců firmy. Program bude přes webové rozhraní umožňovat: přidání nového zaměstnance do evidence vyřazení zaměstnance z evidence
E N D
PHPSouhrnné cvičení 4 - 19 Mgr. Josef Nožička IKT PHP www.zlinskedumy.cz
Zadání příkladu • S pomocí PHP a MySQL naprogramujte databázi pro evidenci zaměstnanců firmy. Program bude přes webové rozhraní umožňovat: • přidání nového zaměstnance do evidence • vyřazení zaměstnance z evidence • opravu údajů u existujícího zaměstnance • výpis všech evidovaných zaměstnanců
Vytvoření databáze V administračním prostředí My SQL vytvoříme databázi Firma. Součástí této databáze bude tabulka Zaměstnanci, kterou můžeme vytvořit v administračním prostředí „ručně“ nebo s pomocí SQL dotazu create table: CREATE TABLE Zamestnanci ( `jmeno` VARCHAR( 15),`prijmeni` VARCHAR( 15 ),`oddeleni` VARCHAR( 25 ),`datumnarozeni` DATE,`zakladniplat` MEDIUMINT ) Poznámka: Jde jen o ilustrativní příklad, v prakticky využitelné databázi by položek bylo nejspíš více než 5.
Přidání nového záznamu do tabulky Data se předají programu prostřednictvím formuláře a do příslušného PHP skriptu se zapíší následující příkazy (použije se SQL příkaz insert into): <?php mysql_connect("mysql.ic.cz","ic_firma","*****"); mysql_select_db("ic_firma"); $pjmeno= $_REQUEST["jmeno"]; $pprijmeni= $_REQUEST["prijmeni"]; $poddeleni=$_REQUEST["oddeleni"]; $pdate= $_REQUEST["datumnarozeni"]; $pplat= $_REQUEST["zakladniplat"]; $sql="insert into zamestnanci (jmeno,prijmeni,oddeleni,datumnarozeni,zakladniplat) values ('$pjmeno','$pprijmeni','$poddeleni','$pdate','$pplat')"; $res=mysql_query($sql); if ($res) echo "Zaměstnanec byl přidán"; else echo "Dotaz nebyl proveden"; ?>
Odstranění záznamu z tabulky Prostřednictvím formuláře se zadá jméno a příjmení zaměstnance, který má být z tabulky odstraněn a do příslušného PHP skriptu se zapíší následující příkazy: (použije se SQL příkaz delete) <?php mysql_connect("mysql.ic.cz","ic_firma","*****"); mysql_select_db("ic_firma"); $pjmeno= $_REQUEST["jmeno"]; $pprijmeni= $_REQUEST["prijmeni"]; $sql="delete from zamestnanci where (prijmeni='$pprijmeni') and (jmeno='$pjmeno') "; $res=mysql_query($sql); if ($res) { $p=mysql_affected_rows(); echo "Bylo smazáno záznamů: $p"; else echo "Dotaz nebyl proveden"; ?>
Výpis záznamů z tabulky Tento úkon se provede kombinací SQL příkazů select a mysql_fetch_array. Do příslušného PHP skriptu se napíší následující příkazy: <?php mysql_connect("mysql.ic.cz","ic_firma","*****"); mysql_select_db("ic_firma"); $sql="SELECT prijmeni,jmeno,oddeleni,zakladniplat FROM zamestnanci order by prijmeni,jmeno"; $res=mysql_query($sql) or die("Nelze provést dotaz!"); echo "<table border=1 bgcolor=lightblue>"; echo "<tr> <th>příjmení: <th>jméno: <th>oddělení: <th>základní plat:"; while ($zaznam = mysql_fetch_array($res)) { echo "<tr><td>$zaznam[0] <td>$zaznam[1] <td>$zaznam[2] <td>$zaznam[3] "; } echo "</table>";?>
Oprava údajů v tabulce Tento z hlediska naprogramování nejsložitější úkon se provede ve dvou krocích. Nejprve se zadá příjmení a jméno zaměstnance, u kterého má být oprava provedena, a kombinací SQL příkazů select a mysql_fetch_array se provede jeho vyhledání v tabulce. Do PHP skriptu se napíší následující příkazy: <?php mysql_connect("mysql.ic.cz","ic_firma","*****"); mysql_select_db("ic_firma"); $pjmeno= $_REQUEST["jmeno"]; $pprijmeni= $_REQUEST["prijmeni"]; $sql="select jmeno,prijmeni,oddeleni,datumnarozeni,zakladniplat from zamestnanci where (prijmeni='$pprijmeni') and (jmeno='$pjmeno') "; $res=mysql_query($sql); if ($zaznam = mysql_fetch_array($res)) { // zobrazení formuláře s dosud zapsanými daty vybraného zaměstnance}?>
Oprava údajů v tabulce - pokračování V druhém kroku se pak pomocí SQL příkazu update provede v tabulce požadovaná oprava. Do příslušného PHP skriptu se napíší následující příkazy: <?php mysql_connect("mysql.ic.cz","ic_firma","*****"); mysql_select_db("ic_firma"); $pjmeno= $_REQUEST["ojmeno"]; $pprijmeni= $_REQUEST["oprijmeni"]; $poddeleni=$_REQUEST["ooddeleni"]; $pdate= $_REQUEST["odatumnarozeni"]; $pplat= REQUEST["ozakladniplat"]; $sql="update zamestnanci set oddeleni='$poddeleni', zakladniplat='$pplat' where (prijmeni='$pprijmeni') and (jmeno='$pjmeno') "; $res=mysql_query($sql); if ($res) echo "Údaje byly opraveny<br>"; else echo "Dotaz nebyl proveden";?>
Zdroje BRÁZA, Jiří. PHP 5: začínáme programovat. 1. vyd. Praha: Grada Publishing, 2005, 244 s. ISBN 80-247-1146-X.