Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola pessoal, vim aqui pq estou com erro em meu codigo..
bem o sistema e assim:
tenho 02 tabelas no banco e elas estao relacionadas
CREATE TABLE contrato
(
id_contrato INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
objeto VARCHAR(100) NOT NULL,
valor_anual DOUBLE NOT NULL,
valor_mensal DOUBLE NOT NULL,
chave_contrato_fk INT NOT NULL,
FOREIGN KEY (chave_contrato_fk) REFERENCES fornecedor(id_fornecedor)
ON DELETE CASCADE
ON UPDATE CASCADE
) ENGINE = INNODB
CREATE TABLE aditivo
(
id_aditivo INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
data_inicial DATE NOT NULL,
data_final DATE NOT NULL,
chave_adtivo_fk INT NOT NULL,
FOREIGN KEY (chave_adtivo_fk) REFERENCES contrato (id_contrato)
ON DELETE CASCADE
ON UPDATE CASCADE
) ENGINE = INNODB
na pagina HTML eu preencho os campos do contrato em seguida clico em "enviar" gravo no banco os dados do contrato..e em seguida minha pagina vai ser direcionada para "link=5" q no caso e "tb_aditivo.php"
mas esta dando erro na consulta:
query2= mysql_query($sql2);
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ISSEC</title>
</head>
<body>
<?php
ini_set('display_errors', true);
error_reporting(E_ALL);
/* aqui foi feito a inserção dos dados do contrato no banco de dados.*/
include ("conexao.php");
/*pegando os valores da tabela.*/
$objeto = $_POST['objeto']; /*objeto*/
$valor_anual = $_POST['valor_anual']; /*valor_anual*/
$valor_mensal = $_POST['valor_mensal']; /*valor_mensal*/
$pega_id = $_POST['pega_id']; // pegando o -id- do fornecedor...
/inserindo valores natabela do banco./
$sql=" INSERT INTO contrato (objeto, valor_anual, valor_mensal, chave_contrato_fk)
VALUES('$objeto' , '$valor_anual' , '$valor_mensal' , '$pega_id')";
$query = mysql_query($sql) or die (mysql_error() );
//agora vou pegar o-id- do contrato
$sql2="SELECT * FROM contrato";
query2= mysql_query($sql2);
while($resultado= mysql_fetch_assoc($query2))
{
$resultado[id_contrato]
}
header ("location:index.php?link=5&id=$resultado[id_contrato]");
?>
</body>
</html>
por favor alguem me ajude ou um dica de como fazer isso!
>
Amigo pelo que vi aí o erro está no query2= mysql_query($sql2); está sem o $ no query2.
rsrsrrs olha ai cara e eu ñ tinha visto esse errooo mas ja corrigir e tambem coloquei " ; " aqui
[$resultado[id_contrato];/code] pronto ai eu ja vejo a tabela de aditivo e preencho ela...so q da um erro q eu ñ entendo olha soo[code]Cannot add or update a child row: a foreign key constraint fails (banco/aditivo, CONSTRAINT aditivo_ibfk_1 FOREIGN KEY (chave_aditivo_fk) REFERENCES contrato (id_contrato) ON DELETE CASCADE ON UPDATE CASCADE)e eu ñ entendo esse erro ja olhei bem o codigo e esta tudo certo q e para funcionar..acho q esse erro e no banco ou ñ?
Retira o
ini_set('display_errors', true);
error_reporting(E_ALL);
e testa.amigo ja fiz isso e nada. a mesma mensagem de erro q esta ai em cima aparece de novo...
mas cara eu estou testando o codigo por parte e eu dei um "echo" na tabela do "tb_aditivo.php"
$pega_id= $_GET['id']; //pegando o -id- do contrato que no caso e: id=$resultado[id_contrato]
echo"$contrato_id";
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ISSEC</title>
</head>
<?php include ("conexao.php"); ?>
<body>
<?php
$pega_id= $_GET['id']; //pegando o -id- do contrato
echo"$contrato_id";
?>
<form method="post" action="aditivo_gravar.php">
<table width="297" border="0">
<tr>
<td width="157">Data Inícial:
</td>
<td width="130">
<label>
<input type="text" name="data_inicial">
</label>
</td>
</tr>
<tr>
<td>Data Final:
</td>
<td>
<label>
<input type="text" name="data_final">
<input type="hidden" name="id_cont" value="<?php print"$contrato_id";?>">
</label>
</td>
</tr>
</table>
<input type = "submit" value="enviar">
</form>
</body>
</html>
so para ver se o -id- do contrato estava sendo passado, mas para minha surpresa ñ estaava..
entao qr dizer q a falha esta no SELECT em diante so ñ sei aonde :
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ISSEC</title>
</head>
<body>
<?php
/* aqui foi feito a inserção dos dados do contrato no banco de dados.*/
include ("conexao.php");
/*pegando os valores da tabela.*/
$objeto = $_POST['objeto']; /*objeto*/
$valor_anual = $_POST['valor_anual']; /*valor_anual*/
$valor_mensal = $_POST['valor_mensal']; /*valor_mensal*/
$pega_id = $_POST['pega_id']; // pegando o -id- do fornecedor...
/inserindo valores natabela do banco./
$sql=" INSERT INTO contrato (objeto, valor_anual, valor_mensal, chave_contrato_fk)
VALUES('$objeto' , '$valor_anual' , '$valor_mensal' , '$pega_id')";
$query = mysql_query($sql) or die (mysql_error() );
//agora vou pegar o-id- do contrato
$sql2="SELECT * FROM contrato";
$query2= mysql_query($sql2);
while($resultado= mysql_fetch_assoc($query2))
{
$resultado[id_contrato];
}
header ("location:index.php?link=5&id=$resultado[id_contrato]");
/*No caso " link=5 " e a pagina :tb_aditivo.php e id=$resultado[id_contrato]
e o -id- da tabela contrato*/
?>
</body>
</html>
vcs estao me entendeno?
se tiver por favor me ajude!!!
Pelo que entendi não esta sendo passado o id,
também será passado apenas um id, então não será necessário o while
tenta fazer assim
$sql2="SELECT * FROM contrato";
$query2= mysql_query($sql2);
$resultado= mysql_fetch_array($query2);
header ("location:index.php?link=5&id=$resultado[id_contrato]");
espero ter ajudado
... tenta identificar os campos na query usando (`) ex:
$sql2 = "SELECT `id_contrato` FROM `contrato`";
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ISSEC</title>
</head>
<body>
<?php
@mysql_connect("localhost","root","454077");
@mysql_select_db("dbase");
$objeto = $_POST['objeto']; /*objeto*/
$valor_anual = $_POST['valor_anual']; /*valor_anual*/
$valor_mensal = $_POST['valor_mensal']; /*valor_mensal*/
$pega_id = $_POST['pega_id']; // pegando o -id- do fornecedor...
$sql=" INSERT INTO contrato (objeto, valor_anual, valor_mensal, chave_contrato_fk)
VALUES('$objeto' , '$valor_anual' , '$valor_mensal' , '$pega_id')";
$query = mysql_query($sql) or die (mysql_error() );
$query2 = mysql_query("SELECT `id_contrato` FROM `contrato`");
while($resultado= mysql_fetch_assoc($query2))
{
$resultado['id_contrato'];
}
header ("location:index.php?link=5&id=".$resultado."");
?>
</body>
</html>Deuu certo Muito Obrigado Amigos q Deus abençoe Vcs!!!
resolveu como ?? :D ..
Amigo pelo que vi aí o erro está no query2= mysql_query($sql2); está sem o $ no query2.