UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia | Departamento de Informática Composição Web Folha Prática 10 : PHP - Interligação com Base de Dados Pode encontrar informação adicional sobre PHP e MySql em http://www.php.net/manual/en/ e http://dev.mysql.com/doc/refman/5.0/en/tutorial.html respectivamente. 1. Proceda à activação quer do Apache quer do MySQL na aplicação XAMPP Control. Vá ao localhost no Browser. Seleccione a linguagem pretendida. Irá aparecer: Carregue em PHPMyAdmin, conforme assinalado na figura. Irá aparecer a janela deste. Realize os seguintes passos de forma a criar-se uma base de dados em MySql. Em “Criar nova base de dados”, defina um nome para a base de dados a criar, como por exemplo: db Após pressionar o botão OK, a base de dados será criada e o seu nome adicionado à lista de bases de dados no menu da esquerda da homepage. UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia | Departamento de Informática Composição Web Em Criar nova tabela na base de dados (ou equivalente Create new Table, se estiver a usar o menu em Inglês), Atribua o nome alunos e Number of fields: 2. A tabela criada aparecerá na lista, como ilustrado na figura seguinte: UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia | Departamento de Informática Composição Web 2. Inserir registos na base de dados: Escreva o seguinte código fonte, que corresponde ao formulário de edição de novos alunos. 1 2 3 4 5 6 7 8 9 10 11 <html> <body> <form action="novoaluno.php" method="post"> Numero: <input type="text" name="number" /> Nome: <input type="text" name="name" /> <input type="submit" /> </form> </body> </html> Escreva o seguinte código PHP num ficheiro com o nome novoaluno.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <?php $con = mysql_connect("localhost", "root", ""); if (!$con) { die('Erro de ligação: ' . mysql_error()); } mysql_select_db("NOME_DA_BASE_DE_DADOS",$con); $sql="INSERT INTO alunos (numero, nome) VALUES ('$_POST[number]','$_POST[name]')"; if (!mysql_query($sql,$con)) { die('Erro: ' . mysql_error()); } echo "Aluno adicionado com sucesso!"; mysql_close($con); ?> NOTA: Substitua NOME_DA_BASE_DE_DADOS pelo nome que atribuiu à base de dados no ponto 1.3. UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia | Departamento de Informática Composição Web 3. Obter registos da base de dados: Escreva o seguinte código fonte, que corresponde à listagem de alunos definidos no ponto anterior. NOTA: Ao gravar atribua extensão PHP. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 <html> <body> <?php $server = mysql_connect("localhost", "root", ""); $db = mysql_select_db("db", $server); $query = mysql_query("SELECT numero, nome FROM alunos"); ?> <table border="1"> <tr> <td>Número</td> <td>Nome</td> </tr> <?php while ($row = mysql_fetch_array($query)) { echo "<tr>"; echo "<td>".$row["numero"]."</td>"; echo "<td>".$row["nome"]."</td>"; echo "</tr>"; } ?> </table> </body> </html> 4. Apagar registos da base de dados: Escreva o seguinte código fonte, que corresponde à listagem de alunos definidos no ponto anterior. NOTA: Ao gravar atribua extensão PHP. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 <html> <body> <?php $server = mysql_connect("localhost", "root", ""); $db = mysql_select_db("db", $server); $query = mysql_query("SELECT numero, nome FROM alunos"); ?> <table border="1"> <tr> <td>Número</td> <td>Nome</td> <td></td> </tr> <?php while ($row = mysql_fetch_array($query)) { echo "<tr>"; echo "<td>".$row["numero"]."</td>"; echo "<td>".$row["nome"]."</td>"; echo "<td><a href='apagaraluno.php?numero=".$row["numero"]."'>Apagar</a></td>"; echo "</tr>"; } ?> </table> </body> </html> UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia | Departamento de Informática Composição Web Escreva o seguinte código PHP num ficheiro com o nome apagaraluno.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <?php $con = mysql_connect("localhost", "root",""); if (!$con) { die('Erro de ligação: ' . mysql_error()); } mysql_select_db("db", $con); $sql="DELETE FROM alunos WHERE numero=".$_GET['numero']; if (!mysql_query($sql,$con)) { die('Erro: ' . mysql_error()); } echo "Aluno removido com sucesso!"; mysql_close($con); ?> Bom trabalho!