Ir ao conteúdo

Posts recomendados

Postado

Gente como eu disse em outro post, o professor não colabora e to tendo que me virar com os exercicios, aí eu fui tentar fazer a tabela que tem chave estrangeira, mas não sei como armazenar no banco de dados (to fazendo por select), eu fiquei tentando e só consegui fazer aparecer os dados da outra tabela no formulario, o jeito que eu fiz eu também achei estranho.

 

 

<?php
	
	$host	=	'localhost';
	$user	=	'root';
	$pass	=	'';
	$banco	=	'sistemabiblioteca';
	
	
	$conn	=	mysql_connect($host,$user,$pass) or die("Não foi possível conectar com o servidor de dados");;
	
	$db		=	mysql_select_db($banco,$conn)or die ("Banco de dados não localizado!");

	$idautor          =$_POST['idautor'];
	$nome_autor         =$_POST['nome_autor'];

	$insere = "INSERT into AUTOR values ('$idautor','$nome_autor')";

    $executa = mysql_query($insere);
 
 if ($executa){
	 echo "Dados cadastrados com sucesso";
 }
 else{
	 echo "Erro ao cadastrar os dados";
 }
 echo "<br /> <a href='form_autor.php'> <<- VOLTAR</a>";
?>

<html>
<head>

<title>Cadastro(autor)</title>
</head>

<body>
<h2>Cadastro de autor</h2>
     <form action="cadastra_autor.php" method="post">
     <table>
         <tr>
             <td>idAutor:</td> <td><input type="text" name="idautor" required></td>
         </tr>
		 
		 <tr>
             <td>Autor:</td> <td><input type="text" name="nome_autor" required></td>
         </tr>

         <tr>
             <td colspan="2">
             <input type="submit" value="Cadastrar"></td>
         </tr>
</form>
</table>
</body>


</html>
<?php
	
	$host	=	'localhost';
	$user	=	'root';
	$pass	=	'';
	$banco	=	'sistemabiblioteca';
	
	
	$conn	=	mysql_connect($host,$user,$pass) or die("Não foi possível conectar com o servidor de dados");;
	
	$db		=	mysql_select_db($banco,$conn)or die ("Banco de dados não localizado!");

	$idlivro                 =$_POST['idlivro'];
	$AUTOR_idautor           =$_POST['AUTOR_idautor'];
	$EDITORA_ideditora       =$_POST['EDITORA_ideditora'];
	$CATEGORIA_idcategoria   =$_POST['CATEGORIA_idcategoria'];
	$titulo                  =$_POST['titulo'];
	$isbn                    =$_POST['isbn'];
	$ano                     =$_POST['ano'];
	$idioma                  =$_POST['idioma'];
	

	$insere = "INSERT into LIVRO values ('$idlivro','$AUTOR_idautor','$EDITORA_ideditora',
	'$CATEGORIA_idcategoria','$titulo','$isbn','$ano','$idioma')";

    $executa = mysql_query($insere);
 
 if ($executa){
	 echo "Dados cadastrados com sucesso";
 }
 else{
	 echo "Erro ao cadastrar os dados";
 }
 echo "<br /> <a href='form_livro.php'> <<- VOLTAR</a>";
?>

<html>
<head>

<title>Cadastro(livro)</title>
</head>

<body>
<h2>Cadastro de livro</h2>
     <form action="cadastra_livro.php" method="post">

     <table>
         <tr>
             <td>idLivro:</td> <td><input type="text" name="idlivro" required></td>
         </tr>	
		 <tr>
		 <?php 

         require_once "cadastra_livro.php"; 

             $sql = 'SELECT idautor, nome_autor  FROM AUTOR'; 
             $query = mysql_query($sql); 
         ?>
		 <td>Autor:</td>
             <td>
		     <select name="idautor"> 
                 <option>Selecione...</option> 

                 <?php while($prod = mysql_fetch_array($query)) { ?> 

                 <option value="<?php echo $prod['idautor']; ?>"><?php echo $prod['nome_autor']; ?></option> 
                 <?php } ?> 

             </select>	
		     </td>	 
         </tr>
		 
		 <?php 

         require_once 'cadastra_livro.php'; 

             $sql = 'SELECT ideditora, nome_editora FROM EDITORA'; 
             $query = mysql_query($sql); 
         ?>
		 <td>Editora:</td>
             <td>
		     <select> 
                 <option>Selecione...</option> 

                 <?php while($prod = mysql_fetch_array($query)) { ?> 

                 <option value="<?php echo $prod['ideditora'] ?>"><?php echo $prod['nome_editora'] ?></option> 
                 <?php } ?> 

             </select>	
		     </td>	 
         </tr>

		 <?php 

         require_once 'cadastra_livro.php'; 

             $sql = 'SELECT idcategoria, nome_categoria FROM CATEGORIA'; 
             $query = mysql_query($sql); 
         ?>
		 <td>Categoria:</td>
             <td>
		     <select> 
                 <option>Selecione...</option> 

                 <?php while($prod = mysql_fetch_array($query)) { ?> 

                 <option value="<?php echo $prod['idcategoria'] ?>"><?php echo $prod['nome_categoria'] ?></option> 
                 <?php } ?> 

             </select>	
		     </td>	 
         </tr>		 
		 
         <tr>
             <td>Título:</td> <td><input type="text" name="titulo" required></td>
         </tr>	
		 <tr>		 

         <tr>
             <td>ISBN:</td> <td><input type="text" name="isbn" required></td>
         </tr>	
		 <tr>		 
		 
         <tr>
             <td>Ano:</td> <td><input type="text" name="ano" required></td>
         </tr>	
		 <tr>		 
		 
         <tr>
             <td>Idioma:</td> <td><input type="text" name="idioma" required></td>
         </tr>	
		 <tr>		 
		 
         <tr>
             <td colspan="2">
             <input type="submit" value="Cadastrar"></td>
         </tr>
     </form>
     </table>
</body>


</html>

 

  • Moderador
Postado

@Lucio Carvalho Olá.

 

Primeiramente desculpe as palavras, mas todo professor faz isso para que seus alunos façam pesquisas e estudem. Pois você não tem ideia do quanto as pessoas copiam e colam da internet. Seu professor não está errado. Já passei por isso e HJ, agradeço por ele ter sido deste jeito. Pois aprendi.

 

Enfim, vamos ao seu problema.

 

Você precisará usar a clausula INNER JOIN.  Mas para fazer isso, é necessário que suas tabelas no banco sejam do tipo  innoDB, para que haja um controle, a tabela "mestre" conter os índices nas quais vai relacionar com o campo de chave estrangeira.

 

Para criar corretamente os relacionamentos, além de registrar corretamente os índices, podes usar o modo Designer do phpmyadmin para fazer o relacionamento do tipo  ON delete: cascade  e ON update cascade.

 

Por fim, deixo um vídeo que gravei ha um tempo, ensinando a fazer os índices, relacionamentos inserções e consultas com inner join.

 

 

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...