FMH - Gestão do Desporto - Recursos Humanos Ficha prática n.º 16 Continuação da criação de uma base de dados em MySQL, com vários contactos e números de telefone. Tarefas: criar, alterar e eliminar registos da base de dados. Obs.: O sinal ”_” significa que o texto deve continuar a ser inserido na mesma linha, apesar de mudar de linha na ficha prática. 1) Modifique a o ficheiro main.php de acordo com os seguintes aspectos: <html><head><title>PHP - Mysql </title></head> <?php $ligação=mysql_connect("mysql-dev.fmh.utl.pt","utilizador","password")_ or die ("problemas com a ligação ao MySQL"); if (!$ligação) { print ("problemas na ligação ao servidor MySql"); } $sql="select ID, NOME, TELEFONE from NomeDaTabela"; $resultado=mysql_db_query("NomeDaBaseDeDados", $sql); if ($resultado) { print ("<table width=\"85%\" align=center border=\"1\">"); print ("<tr><td width=\"15%\" bgcolor=\"FFFF00\">ID</td>”); print (“<td width=\"45%\" bgcolor=\"FFFF00\">Nome</td>”); print (“<td width=\"30%\" bgcolor=\"FFFF00\">Telefone</td></tr>"); while ($registo=mysql_fetch_array($resultado)) { $id=$registo["ID"]; $nome=$registo["NOME"]; $telefone=$registo["TELEFONE"]; print ("<tr><td_ bgcolor=\"FFFF00\">$id</td><td>$nome</td><td>$telefone</td></tr>"); } echo ("</table>"); }else{ print ("Não há registos"); } mysql_free_result ($resultado); include ('menu.inc'); ?> </body></html> 2) Criar um novo registo. Para isso crie o ficheiro adic.php, onde irá introduzir os dados: <html><head><title>PHP - Mysql</title></head> <body> <b>Adição de registo </b> <form method="post" action="adic1.php"> <table width=95%> <ul> <li>Nome <input type="text" name="nome" size="25"></li> </ul> <ul> <li>Telefone <input type="text" name="telefone" size="50"> </li> </ul> </table> <p align="left"><input type="submit" value="Adicionar registo"> <input type="reset" value="Limpar ecrã"> <p align="center"> </p> </form> <?php include('menu.inc'); ?> </body> </html> 3) Criar um novo registo - continuação. Crie o ficheiro adic1.php, que irá receber os dados e inserilos na respectiva tabela da base de dados: <html> <head> <title>PHP - Mysql</title> </head> <body> <?php if ($nome){ mysql_connect("mysql-dev.fmh.utl.pt","utilizador","password") or die_ ("problemas com a ligação ao MySQL"); $sql="insert into NomeDaTabela (NOME, TELEFONE) values ('$nome',_ '$telefone')"; $resultado=mysql_db_query("NomeDaBaseDeDados", $sql); $reg_ins=mysql_affected_rows(); echo ("$reg_ins registo inserido com sucesso <p>"); echo ("Dados actuais da base de dados <p>"); if ($resultado){ $sql="select ID, NOME, TELEFONE from NomeDaTabela"; $resultado=mysql_db_query("NomeDaBaseDeDados", $sql); if ($resultado) { print ("<table width=\"85%\" align=center border=\"1\">"); print ("<tr><td width=\"15%\" bgcolor=\"FFFF00\">ID</td>”); print ("<td width=\"45%\" bgcolor=\"FFFF00\">Nome</td>”); print ("<td width=\"30%\" bgcolor=\"FFFF00\">Telefone</td></tr>"); while ($registo=mysql_fetch_array($resultado)) { $id=$registo["ID"]; $nome1=$registo["NOME"]; $telefone1=$registo["TELEFONE"]; print ("<tr><td bgcolor=\"FFFF00\">$id</td>_ <td>$nome1</td><td>$telefone1</td></tr>"); } echo ("</table>"); }else{ print ("não há registos"); } mysql_free_result($resultado); }else{ echo "Nome em branco, por favor preencha o campo Nome"; echo "<p></p>"; } } include ('menu.inc'); ?> </body> </html> 4) Alterar um registo existente. Crie o ficheiro alter.php, onde irá seleccionar o registo a alterar: <?php /*Script alter.php*/ ?> <html> <head> <title>PHP - Mysql </title> </head> <body> <b>Edição de registo</b><p> Escolha um registo para modificar<p> <?php $ligação=mysql_connect("mysql-dev.fmh.utl.pt","utilizador","password")_ or die ("problemas com a ligação ao MySQL"); if (!$ligação) { print ("problemas na ligação ao servidor Mysql"); } $sql="select * from NomeDaTabela"; $resultado = mysql_db_query ("NomeDaBaseDeDados", $sql); if ($resultado) { print ("<table width=\"90%\" align=center bgcolor=\"#cccc99\"_ border=0>"); print ("<tr><td width=\"5%\" align=center bgcolor=\"#cccc99\">ID_ </td>”); print (“<td width=\"25%\" align=left bgcolor=\"#cccc99\">Nome</td>”); print (“<td width=\"45%\" bgcolor=\"#cccc99\">Telefone</td></tr>"); while ($registo=mysql_fetch_array($resultado)) { $id=$registo["ID"]; $nome=$registo["NOME"]; $telefone=$registo["TELEFONE"]; print ("<tr><td align=center bgcolor=\"#f5f5ec\">”); print ("<a href=\"alter1.php3?id=$id&nome=$nome&”); print ("telefone=$telefone\">$id</a></td>”); print ("<td bgcolor=\"#f5f5ec\">$nome</td>”); print ("<td bgcolor=\"#f5f5ec\">$telefone</td></tr>"); } echo ("</table>"); }else{ print ("não há registos"); } mysql_free_result ($resultado); include ('menu.inc'); ?> 5) Alterar um registo existente - continuação. Crie o ficheiro alter1.php, onde irá efectuar as modificações ao registo a alterar: <?php /*Script alter1.php*/ ?> <html> <head> <title>PHP - Mysql </title> </head> <body><b>Edição de registo</b><p> <br>Registo seleccionado <form method="POST" action="alter2.php"> N° de id - <?php echo "$id";?> <br> <table border=”0” width=”100%”> <tr><td width=”20%”>Nome -</td> <td><input type="text" name="nome" size="30" value="<?php echo" $nome";_ ?>"></td></tr> <tr><td width=20%>Telefone -</td> <td><input type="text" name="telefone" size="50" value="<?php echo_ "$telefone"; ?>"></td></tr> </table><br> <input type="submit" value="Alterar"> <input type="hidden" name="id" value="<?php echo "$id"; ?>"> </form> <?php include ('menu.inc'); ?> </body> </html> 6) Alterar um registo existente - continuação. Crie o ficheiro alter2.php, que irá efectuar as modificações ao registo a alterar, na tabela respectiva: <?php /*Script alter2.php*/ ?> <?php mysql_connect("mysql-dev.fmh.utl.pt","utilizador","password") or die_ ("problemas com a ligação ao MySQL"); $sql="update teste set NOME='$nome', TELEFONE='$telefone' where_ ID='$id'"; //print ("$id<p>$nome<p>$telefone<p>$id<p>"); $resultado=mysql_db_query("NomeDaBaseDeDados",$sql); $num_afectado=mysql_affected_rows(); if ($resultado){ print ("Alteração de $num_afectado registo efectuada com sucesso<p>"); print ("O registo alterado passa a possuir os seguintes dados<p>"); $sql="select * from NomeDaTabela where ID='$id'"; $resultado=mysql_db_query("NomeDaBaseDeDados",$sql); $num_campos=mysql_num_fields($resultado); print ("<table width=\"90%\" align=\"center\" border=\"3\">"); for ($coluna=0;$coluna<$num_campos;$coluna++) { $field=mysql_field_name($resultado,$coluna); $campo=mysql_result($resultado,0,"$field"); print ("<tr><td align=\"center\"_ bgcolor=\"FFFF00\">$field</td><td>$campo</td></tr>"); } print ("</table>"); }else{ print ("Ocorreu um erro, repita a operação"); } mysql_free_result($resultado) ; mysql_close(); include ('menu.inc'); ?> 7) Eliminar um registo existente. Crie o ficheiro elim.php, onde irá seleccionar o registo a eliminar: <?php /*Script elim.php*/ ?> <html> <head> <title>PHP - Mysql </title> </head> <body> <?php mysql_connect("mysqldev.fmh.utl.pt","utilizador","password") or die_ ("problemas com a ligação ao MySQL"); $sql = "select * from NomeDaTabela order by ID asc"; $resultado = mysql_db_query("NomeDaBaseDeDados",$sql); if ($resultado) { print ("<b>Seleccione o registo que pretende eliminar<p></b>"); print ("<table width=80% align=center border=3>"); print ("<tr bgcolor=\"ffa000\"><td>Id</td>_ <td>Nome</td><td>Telefone</td></tr>"); while ($registo=mysql_fetch_array($resultado)){ $id=$registo["ID"]; $nome=$registo["NOME"]; $telefone=$registo["TELEFONE"]; print ("<tr><td><align=center><a_ href=\"elim1.php3?id=$id&nome=$nome&”); print ("telefone=$telefone\">$id</a></td>”); print ("<td>$nome</td><td>$telefone</td></tr>"); } print ("</table>"); }else{ printf ("Não há registos "); } mysql_free_result ($resultado); include('menu.inc'); ?> </body> </html> 8) Eliminar um registo existente - continuação. Crie o ficheiro elim1.php, que irá efectuar a eliminação do registo seleccionado, na tabela respectiva: <?php /*Script elim1.php*/ ?> <html> <head> <title>PHP - Mysql </title> </head> <body> <?php mysql_connect("mysql-dev.fmh.utl.pt","utilizador","password") or die_ ("problemas com a ligação ao MySQL"); $sql = "select * from NomeDaTabela where ID='$id'"; $resultado = mysql_db_query("NomeDaBaseDeDados",$sql); if ($resultado) { print ("Eliminação do registo com referencia = $id vai ser_ executada"); print ("<table width=90% align=center border=3>"); print ("<tr><td>Nome</td><td>Telefone</td></tr>"); while ($registo=mysql_fetch_array($resultado)){ $id = $registo["ID"]; $nome = $registo["NOME"]; $telefone = $registo["TELEFONE"]; print ("<tr><td align=center>$nome</td><td>$telefone</td></tr>"); } print ("</table>"); if ($Submit) { $sql = "delete from NomeDaTabela where ID = '$id'"; $resultado = mysql_db_query("testeDB",$sql); $num_del=mysql_affected_rows(); if ($num_del>0) { print ("<p>Eliminação do registo executada com sucesso</p>"); } }else{ ?> <form method="post" action="<?php echo $PATH_INFO ?>"> <p>Confirma a eliminação ? <input type="Submit" name="Submit" value=" OK"> <input type="hidden" name="id" value="<?php echo "$id";?>"> </form> <?php } }else{ print ("Não há registos "); } mysql_close (); include('menu.inc'); ?> </body> </html>