0

Retornar o id do registro recem inserido

criado por Webster Moitinho em 09/05/2011 8:35am
Bom dia a todos!

Estou fazendo um site para imobiliárias. Tenho uma tabela "enderecos" e uma tabela "imoveis"

[code]
--------------------------------------------------------

--
-- Estrutura da tabela `enderecos`
--

CREATE TABLE IF NOT EXISTS `enderecos` (
`id_enderecos` int(11) NOT NULL AUTO_INCREMENT,
`id_pessoas` int(11) NOT NULL,
`id_imoveis` int(11) NOT NULL,
`tipo_enderecos` enum('1','2') NOT NULL DEFAULT '1',
`logr` varchar(30) NOT NULL,
`nr` int(11) NOT NULL,
`compl` varchar(11) NOT NULL,
`bairro` varchar(25) NOT NULL,
`cidade` varchar(155) NOT NULL,
`uf` int(11) NOT NULL,
`cep` varchar(10) NOT NULL,
`usu` varchar(8) NOT NULL,
`registro` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id_enderecos`),
KEY `id_pessoas` (`id_pessoas`),
KEY `id_imoveis` (`id_imoveis`),
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=19
[/code]

[code]
--------------------------------------------------------

--
-- Estrutura da tabela `imoveis`
--

CREATE TABLE IF NOT EXISTS `imoveis` (
`id_imoveis` int(11) NOT NULL AUTO_INCREMENT,
`tipo_imoveis` int(11) NOT NULL,
`endereco` int(10) NOT NULL,
`proprietario` int(11) NOT NULL,
`area` int(11) NOT NULL,
`img` varchar(72) NOT NULL,
`valor` decimal(14,2) NOT NULL,
`destaque` enum('S','N') NOT NULL DEFAULT 'N',
`vendido` enum('S','N') NOT NULL DEFAULT 'N',
`usu` varchar(8) NOT NULL,
`registro` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id_imoveis`),
KEY `tipo_imoveis` (`tipo_imoveis`,`proprietario`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=8[/code]

Para cadastrar um imóvel, primeiro fazemos a inserção do registro na tabela "enderecos", e depois, usamos o id desta tabela para inserir o registro na tabela "imoveis". Porem não consigo nem com reza braba!

O código que etou usando é o seguinte:

[code]
<?php

$usu = $_SESSION['usuario'];
$id_usu = $_SESSION['id_usu'];
$cep = $_POST["cep"];
$tipo = $_POST["cat"];
$area = $_POST["area"];
$endere = $_POST["endereco"];
$nr = $_POST["nr"];
$compl = $_POST["compl"];
$bairro = $_POST["bairro"];
$cidade = $_POST["cidade"];
$uf = $_POST["estado"];


$endere = mysql_query("INSERT INTO enderecos (id_enderecos, id_pessoas, id_imoveis, tipo_enderecos, logr, nr, compl, bairro, cidade, uf, cep, usu, registro) VALUES ('','$id_usu','','1','$endere','$nr','$compl','$bairro','$cidade','$uf','$cep','$usu',CURRENT_TIMESTAMP)")or die(mysql_error());

$ult = mysql_insert_id()

$imoveis = mysql_query("INSERT INTO imoveis (id_imoveis, tipo_imoveis, endereco, proprietario, area, img, valor, destaque, vendido, usu, registro) VALUES ('','$tipo','$endere','$id_usu','$area','','','N','N','$usu',CURRENT_TIMESTAMP)")or die(mysql_error());


[/code]

Aonde será que eu estou errando???

Lista de Respostas:

+1
Resposta Final (Undo)
09/05/2011 11:19am
(~7 anos atrás)
Marcos Regis respondeu:
troque
$imoveis = mysql_query("INSERT INTO imoveis (id_imoveis, tipo_imoveis, endereco, proprietario, area, img, valor, destaque, vendido, usu, registro) VALUES ('','$tipo','$endere','$id_usu','$area','','','N','N','$usu',CURRENT_TIMESTAMP)")or die(mysql_error());

por

$imoveis = mysql_query("INSERT INTO imoveis (id_imoveis, tipo_imoveis, endereco, proprietario, area, img, valor, destaque, vendido, usu, registro) VALUES ('','$tipo',$ult,'$id_usu','$area','','','N','N','$usu',CURRENT_TIMESTAMP)")or die(mysql_error());

0
09/05/2011 1:06pm
(~7 anos atrás)
Webster Moitinho respondeu:
Obrigado Marcos!

Mais uma vez "salvando a lavoura" rsrsrs

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)