Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pacificosc

gravar em duas tabelas

Recommended Posts

Olá Mestres do Imasters, boa noite!

 

É o seguinte, tenho uma tabela "empresa", com os seguintes campos: id_emp, fantasia, cnpj, endereco, bairro... e outra tabela: usuarios

onde os seguintes campos são: usuario_id, nome, sobrenome, usuario, senha, nivel_usuario, id_emp....

 

Fiz o seguinte comando no Mysql: alter table usuarios add foreign key (id_emp) references empresa (id_emp) - para relacionar os usuarios a empresa.

 

No meu formulário de cadastro da empresa, funciona e grava no banco de dados, porém, irei acrescentar no cadastro da empresa, os campos para inserir os "usuários", como devo fazer isso? Pois são duas tabelas diferentes!

 

Agradeço pela ajuda!

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que entendi vc quer gravar dados em tabelas diferentes mas de uma vez só. Pra isso basta fazer dois insert um depois do outro.

Ex.:

$sql_gravar = "INSERT INTO `astronews`.`empresa` (`id`, `nome`, `cnpj`, `cadastro`) VALUES (NULL, '', '$login', '$cnpj', '$cadastro', NOW( ));";


$sql_gravar = "INSERT INTO `astronews`.`usuarios` (`id`, `nome`, `cpf`, `cadastro`) VALUES (NULL, '', '$login', '$cpf', '$cadrastro', NOW( ));";

	
	 mysql_query($sql_gravar,$conexao);
	 header('location: index.php');

Se não for isso tente explicar melhor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode me responder que erro é este:

: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/saude103/public_html/frm_company/php-multipage-form/page4_insertdata.php:11) in /home/saude103/public_html/frm_company/php-multipage-form/page4_insertdata.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Landerson a linha da seguinte forma:

 

<!DOCTYPE HTML>
<html>
<head>
<title>Cadastrando...</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<div class="container">
<div class="main">
<h2>Cadastrando...</h2><hr/>
<?php
session_start();
if (isset($_POST['estado'])){
if (!empty($_SESSION['post'])){
if (empty($_POST['endereco'])
|| empty($_POST['cidade'])
|| empty($_POST['cep'])
|| empty($_POST['estado'])){
//Setting error for page 3
$_SESSION['error_page3'] = "Mandatory field(s) are missing, Please fill it again";
header("location: page3_form.php"); //redirecting to third page
} else {
foreach ($_POST as $key => $value) {
$_SESSION['post'][$key] = $value;
}
//function to extract array
extract($_SESSION['post']);
Não estou encontrando o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

"Os cabeçalhos já foram enviados" significa que o seu script PHP já enviou os cabeçalhos HTTP, e como tal, não pode fazer modificações a eles agora.

 

Abra um script php acima de tudo e inicie a session.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Landerson e Helmes, a mensagem não aparece mais. Obrigado pela ajuda!

 

Meu problema é outro agora.

 

No final da inclusão dos dados, aparece a seguinte mensagem: Form Submission Failed..!!

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php

session_start();

if (isset($_POST['estado'])){

if (!empty($_SESSION['post'])){

if (empty($_POST['endereco'])

|| empty($_POST['cidade'])

|| empty($_POST['cep'])

|| empty($_POST['estado'])){


//Setting error for page 3

$_SESSION['error_page3'] = "Mandatory field(s) are missing, Please fill it again";

header("location: page3_form.php"); //redirecting to third page

} else {

foreach ($_POST as $key => $value) {

$_SESSION['post'][$key] = $value;

}

//function to extract array

extract($_SESSION['post']);

?>

<html>

<head>

<title>PHP Multi Page Form</title>

<link rel="stylesheet" href="style.css" />

</head>

<body>

<div class="container">

<div class="main">

<h2>PHP Multi Page Form</h2><hr/>


<?php

//Storing values in database

$connection = mysql_connect("localhost", "meu usuario", "minha senha");

$db = mysql_select_db("meu banco", $connection);

$query = mysql_query("insert into empresa (fantasia,email,celular,senha,conf_senha,cod_tipo,cod_categoria,endereco,bairro,cep,cidade,estado) values('$fantasia','$email','$celular','$senha','$conf_senha','$cod_tipo','$cod_categoria','$endereco','$bairro','$cep','$cidade','$estado')", $connection);

if ($query) {

echo '<p><span id="success">Form Submitted successfully..!!</span></p>';

} else {

echo '<p><span>Form Submission Failed..!!</span></p>';

}

//destroying session

unset($_SESSION['post']);

}

} else {

header("location: page1_form.php"); //redirecting to first page

}

} else {

header("location: page1_form.php"); //redirecting to first page

}

?>

</div>


</div>

</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ouve algum erro aqui:

$query = mysql_query("insert into empresa (fantasia,email,celular,senha,conf_senha,cod_tipo,cod_categoria,endereco,bairro,cep,cidade,estado) values('$fantasia','$email','$celular','$senha','$conf_senha','$cod_tipo','$cod_categoria','$endereco','$bairro','$cep','$cidade','$estado')", $connection);

Esse erro que retornou foi você mesmo que configurou.

Verificou se estar inserindo os dados corretamente no banco de dados?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Helmes, vou ser mais detalhista aqui: tenho um multi formuário de cadastro para empresa, ou seja, cadastro em passo a passo.

No primeiro formulário (form1.php) tenho os campos: fantasia, email, celular,senha,conf_senha

No segundo (form2.php) tenho dois selects, onde um depende do que for selecionado no outro. (Exemplo de selecionar o estado e aparecer a cidade), mas, usei de outra forma como: tipo e categoria

No terceiro (form3.php) campos: endereco, bairro, cep, cidade e estado.

 

No próximo ele grava no banco de dados conforme foi citado acima.

 

Vou colocar aqui, o código do segundo formulário:

==========

Início

==========

<?php
session_start();
//checking first page values for empty,If it finds any blank field then redirected to first page
if (isset($_POST['fantasia'])){
if (empty($_POST['fantasia'])
|| empty($_POST['email'])
|| empty($_POST['celular'])
|| empty($_POST['senha'])
|| empty($_POST['conf_senha'])){
//setting error message
$_SESSION['error'] = "Mandatory field(s) are missing, Please fill it again";
header("location: page1_form.php"); //redirecting to first page
} else {
//Sanitizing email field to remove unwanted characters
$_POST['email'] = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
//After sanitization Validation is performed
if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
//Validating Contact Field using regex
if (!preg_match("/^[0-9]{10}$/", $_POST['celular'])){
$_SESSION['error'] = "10 digit contact number is required.";
header("location: page1_form.php");
} else {
if (($_POST['senha']) === ($_POST['conf_senha'])) {
foreach ($_POST as $key => $value) {
$_SESSION['post'][$key] = $value;
}
} else {
$_SESSION['error'] = "Password does not match with Confirm Password.";
header("location: page1_form.php"); //redirecting to first page
}
}
} else {
$_SESSION['error'] = "Invalid Email Address";
header("location: page1_form.php");//redirecting to first page
}
}
} else {
if (empty($_SESSION['error_page2'])) {
header("location: page1_form.php");//redirecting to first page
}
}
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Cadastrando - Passo 2</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<div class="container">
<div class="main">
<h2>PHP Multi Page Form</h2><hr/>
<span id="error">
<?php
//To show error of page 2
if (!empty($_SESSION['error_page2'])) {
echo $_SESSION['error_page2'];
unset($_SESSION['error_page2']);
}
?>
<?php
include ("config.php");
?>
</span>
<form action="page3_form.php" method="post">
<label for="cod_tipo">Tipo da Empresa:</label>
<select name="tipo" id="cod_tipo" type="button" data-toggle="dropdown">
<option value=""></option>
<?php
$sql = "SELECT cod_tipo, nome
FROM tipo
ORDER BY nome";
$res = mysql_query( $sql );
while ( $row = mysql_fetch_assoc( $res ) ) {
echo '<option value="'.$row['cod_tipo'].'">'.$row['nome'].'</option>';
}
?>
</select>
<br />
<div class="form-group">
<label for="cod_categoria">Categoria:</label>
<span class="carregando">Aguarde, carregando...</span>
<select name="tipo" id="cod_categoria" type="button" data-toggle="dropdown">
<option value="">-- Escolha uma Categoria --</option>
</select>
</div>
<script type="text/javascript">
google.load('jquery', '1.3');
</script>
<script type="text/javascript">
$(function(){
$('#cod_tipo').change(function(){
if( $(this).val() ) {
$('#cod_categoria').hide();
$('.carregando').show();
$.getJSON('cidades.ajax.php?search=',{cod_tipo: $(this).val(), ajax: 'true'}, function(j){
var options = '<option value=""></option>';
for (var i = 0; i < j.length; i++) {
options += '<option value="' + j.cod_categoria + '">' + j.nome + '</option>';
}
$('#cod_categoria').html(options).show();
$('.carregando').hide();
});
} else {
$('#cod_categoria').html('<option value="">– Escolha o tipo –</option>');
}
});
});
</script>
<input type="reset" value="Reset" />
<input type="submit" value="Next" />
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

$query = mysql_query("insert into empresa (fantasia,email,celular,senha,conf_senha,cod_tipo,cod_categoria,endereco,bairro,cep,cidade,estado) values('$fantasia','$email','$celular','$senha','$conf_senha','$cod_tipo','$cod_categoria','$endereco','$bairro','$cep','$cidade','$estado')", $connection);
                            if ($query) {
                                echo '<p><span id="success">Form Submitted successfully..!!</span></p>';
                            } else {
                  <<LINHA 9>>              echo '<p><span>Form Submission Failed..!!</span></p>';
                            }

Veja a linha 9, a sua verificação caiu no else, por isso mostrou aquele erro.

 

Acredito que você esteja querendo verificar se a inserção de dados foi bem sucedida, mas não sei se vai funcionar assim. Por isso falei pra verificar no seu banco de dados se ta inserindo os dados corretamente, se tiver então essa verificação não ta funcionando. AI você da uma olhada nessa nesse exemplo aqui e ver como faz.

 

Ex:

$result = mysql_query('SELECT * WHERE 1=1');
if (!$result) {
    die('Invalid query: ' . mysql_error());
}

E outra, você estar usando o mysql que ja esta obsolento e não estara mais no PHP 7.

 

Se você for colocar esse projeto no servidor ele não vai funcionar. Por isso ja lhe aconselho a mudar para o mysqli ou PDO.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Helmes, tem como me orientar quanto a este erro? O que devo alterar para que grave no banco de dados? Quanto a PDO, ainda não sei como usá-lo.

 

Agradeço por ter respondido ao meu tópico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me passa os arquivos e o banco de dados por e-mail pra mim concerta pra você: helmesvs@hotmail.com

 

Sobre o PDO é bom você ja começar a da uma estudada, mas se tiver dificuldade use o mysqli que ja resolve seu problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.