FMH Mestrado Gestão do Desporto Sistemas de Informação Ficha prática PHP/MySQL 2 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: <title>php - Mysql </title> $ligação=mysql_connect("mysql-dev.fmh.utl.pt","utilizador","password")_ or die if (!$ligação) { print ("problemas na ligação ao servidor MySql"); $sql="select ID, NOME, TELEFONE from NomeDaTabela"; 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>"); print ("<tr><td_ bgcolor=\"ffff00\">$id</td><td>$nome</td><td>$telefone</td></tr>"); else{ print ("Não há registos"); 2) Criar um novo registo. Para isso crie o ficheiro adic.php, onde irá introduzir os dados: <title>php - Mysql</title> <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>
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: <title>php - Mysql</title> if ($nome){ $sql="insert into NomeDaTabela (NOME, TELEFONE) values ('$nome',_ '$telefone')"; $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"; 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>"); $nome1=$registo["nome"]; $telefone1=$registo["telefone"]; print ("<tr><td bgcolor=\"ffff00\">$id</td>_ <td>$nome1</td><td>$telefone1</td></tr>"); else{ print ("não há registos"); mysql_free_result($resultado); else{ echo "Nome em branco, por favor preencha o campo Nome"; echo "<p></p>"; 4) Alterar um registo existente. Crie o ficheiro alter.php, onde irá seleccionar o registo a alterar: /*Script alter.php*/ <title>php - Mysql </title> <b>edição de registo</b><p> Escolha um registo para modificar<p>
$ligação=mysql_connect("mysql-dev.fmh.utl.pt","utilizador","password")_ or die if (!$ligação) { print ("problemas na ligação ao servidor Mysql"); $sql="select * from NomeDaTabela"; $resultado = mysql_db_query ("NomeDaBaseDeDados", $sql); 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>"); 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>"); else{ print ("não há registos"); 5) Alterar um registo existente - continuação. Crie o ficheiro alter1.php, onde irá efectuar as modificações ao registo a alterar: /*Script alter1.php*/ <title>php - Mysql </title> <b>edição de registo</b><p> <br>registo seleccionado <form method="post" action="alter2.php"> N de id - echo "$id"; <br> <table border= 0 width= 100% > <tr><td width= 20% >Nome -</td> <td><input type="text" name="nome" size="30" value=" echo" $nome";_ "></td></tr> <tr><td width=20%>telefone -</td> <td><input type="text" name="telefone" size="50" value=" echo_ "$telefone"; "></td></tr> </table><br> <input type="submit" value="alterar"> <input type="hidden" name="id" value=" echo "$id"; ">
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: /*Script alter2.php*/ $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>"); else{ print ("Ocorreu um erro, repita a operação"); mysql_free_result($resultado) ; mysql_close(); 7) Eliminar um registo existente. Crie o ficheiro elim.php, onde irá seleccionar o registo a eliminar: /*Script elim.php*/ <title>php - Mysql </title> mysql_connect("mysqldev.fmh.utl.pt","utilizador","password") or die_ $sql = "select * from NomeDaTabela order by ID asc"; $resultado = mysql_db_query("nomedabasededados",$sql); 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)){ 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>"); else{ printf ("Não há registos ");
8) Eliminar um registo existente - continuação. Crie o ficheiro elim1.php, que irá efectuar a eliminação do registo seleccionado, na tabela respectiva: /*Script elim1.php*/ <title>php - Mysql </title> $sql = "select * from NomeDaTabela where ID='$id'"; $resultado = mysql_db_query("nomedabasededados",$sql); 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>"); 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=" echo $PATH_INFO "> <p>confirma a eliminação? <input type="submit" name="submit" value=" OK"> <input type="hidden" name="id" value=" echo "$id";"> else{ print ("Não há registos "); mysql_close ();