O que hoje me traz aqui é o assunto das Foreign Keys. Isto é difícil de explicar a ainda mais difícil de fazer. Digamos que tenho as seguintes tabelas MySQL:
temas
id(PrimaryKey) nome_tema
1 Livros
2 Filmes
categoriasLivros
id_tema (Foreign Key, id da tabela temas) id_categoria (Primary Key) nome_categoria
1 1 Sinopses
1 2 Críticas
1 3 Prémios
titulosSinopses
id_categoria(Foreign Key, id_categoria da tabela categoriasLivros) id_titulos (PK) nome_titulo
2 1 Livro 1
2 2 Livro 2
2 3 Livro3
Ou seja, uma hierarquia de tabelas. A tabela TEMAS tem vários temas, cada um deles com uma tabela categorias[Tema], e cada categoria com uma tabela titulos[Categoria].
Tenho agora alguns PHPs. Um deles lista, numa tabela, todos os temas da tabela TEMAS, e cada linha da tabela, correspondente a cada tema, tem uma célula com o link Adicionar Categoria. Este faz um reload para addcategoria.php?id=$id, em que $id é o id da tabela escolhida.
Nesta página tenho um campo de texto em que se digita o nome da categoria, e o botão Submit. Agora vem o grande problema:
Consoante o tema escolhido, o nome dessa categoria será adicionado na tabela categorias[Tema] lhe correspondente, ou seja, em que a Foreign Key (id_tema) de categorias[Tema] seja a Primary Key (id) de TEMAS. Depois disto, terá de ser criada uma nova tabela titulos[Categoria], em que a Foreign Key (id_categoria) será a Primary Key (id_categoria) da categoria da tabela categorias[Tema]. Compreenderam mais ou menos ? A categoria adicionada será colocada na tabela cuja Foreign Key seja igual a $id, e também a nova tabela será criada de forma a que, quando for adicionados dados, a Foreign Key seja sempre a Primary Key de categorias[Tema].
Pergunta
Rastazituh
Boas !
O que hoje me traz aqui é o assunto das Foreign Keys. Isto é difícil de explicar a ainda mais difícil de fazer. Digamos que tenho as seguintes tabelas MySQL:
temas
categoriasLivros
titulosSinopses
Ou seja, uma hierarquia de tabelas. A tabela TEMAS tem vários temas, cada um deles com uma tabela categorias[Tema], e cada categoria com uma tabela titulos[Categoria].
Tenho agora alguns PHPs. Um deles lista, numa tabela, todos os temas da tabela TEMAS, e cada linha da tabela, correspondente a cada tema, tem uma célula com o link Adicionar Categoria. Este faz um reload para addcategoria.php?id=$id, em que $id é o id da tabela escolhida.
Nesta página tenho um campo de texto em que se digita o nome da categoria, e o botão Submit. Agora vem o grande problema:
Consoante o tema escolhido, o nome dessa categoria será adicionado na tabela categorias[Tema] lhe correspondente, ou seja, em que a Foreign Key (id_tema) de categorias[Tema] seja a Primary Key (id) de TEMAS. Depois disto, terá de ser criada uma nova tabela titulos[Categoria], em que a Foreign Key (id_categoria) será a Primary Key (id_categoria) da categoria da tabela categorias[Tema]. Compreenderam mais ou menos ? A categoria adicionada será colocada na tabela cuja Foreign Key seja igual a $id, e também a nova tabela será criada de forma a que, quando for adicionados dados, a Foreign Key seja sempre a Primary Key de categorias[Tema].
Seguem-se os PHPs:
addcategoria.php
<?php echo "<table width=\"400\" align=\"center\" border=\"0\" cellpadding=\"1\" cellspacing=\"1\">"; echo "<tr>"; echo "<th widht=\"15\"><strong><font size=\"1\" face=\"Verdana\"><center>ID</center></font></strong></th>"; echo "<th widht=\"50\"><strong><font size=\"1\" face=\"Verdana\"><center>Tema</center></font></strong></th>"; echo "<th widht=\"30\"><strong><font size=\"1\" face=\"Verdana\"><center>Escolher</center></font></strong></th>"; while ($linha=mysql_fetch_array($resultado)) { $id = $linha["id"]; $nome_tema = $linha["nome_tema"]; echo "<tr></tr>"; echo "<tr>"; echo "<td widht=\"15\" height=\"20\"><font size=\"1\" face=\"Verdana\" style=\"text-decoration: none\"><center>$id</center></font></td>"; echo "<td widht=\"50\" height=\"20\"><font size=\"1\" face=\"Verdana\" style=\"text-decoration: none\"><center>$nome_tema</center></font></td>"; echo "<th widht=\"30\" height=\"20\"><a href='addcategoria_bd.php?id=$id'><img src=\"http://www.nimbus.com.pt/conteudos/images/chosenyes.gif\" border=\"0\"></a></th>"; echo "</tr>"; } echo "</table>"; ?>addcategoria_bd.php<?php $tema_escolhido = mysql_query("SELECT * FROM temas WHERE id = '$id'"); $linha=mysql_fetch_array($tema_escolhido); $tema = $linha['nome_tema']; // Apresenta a frase com o tema escolhido echo "<p><font size=\"1\" face=\"Verdana\">Adicione uma nova categoria ao tema '$tema' através do seguinte formulário</font></p>"; ?> <form action="addcategoria_bd2.php" method="post" name="adduser" id="adduser"> <font size="2" face="Tahoma"> </font> <center> <p align="left"></p> </center> <table width="260" border="0" cellpadding="0" cellspacing="2"> <tr> <td width="55"><div align="left"><font size="1" face="Verdana">Categoria:</font></div></td> <td colspan="2"><div align="justify"><font size="1" face="Verdana"> <input name="categoria" type="text" class="post" id="username" size="20"> </font></div></td> </tr> <tr> <td><div align="left"><font size="2" face="Tahoma"><font face="Verdana"></font> </font></div></td> <td width="53"><font size="2" face="Verdana"> </font></td> <td width="144"><font size="2" face="Verdana"> <input name="submit" type="submit" class="button" value="Adicionar"> </font></td> </tr> </table> </form>Agora preciso do script de addcategoria_bd2.php. Como fazer, alguém tem ideia ? Obrigado desde já pela atenção.
Link para o comentário
Compartilhar em outros sites
15 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.