Ficha prática n.º 16

Propaganda
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>
Download