Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal me deparei com um problema no select com varias tabelas estou conseguindo consultar como desejo até três tabelas orcamento, veiculos e a clientes, até aqui tudo funciona como imaginei, so que preciso inserir mais duas tabelas na consulta são elas detalhe_orcamento e mao_obra
Quando insiro no select essas duas ultimas tabelas a pagina exibir não mostra nada e as vezez mostra dados duplicados e misturado ex: veiculo com proprietário diferente.
O select deve mostrar um "relatório" de orçamento com os dados do proprietário, veiculo e a relação de serviços a serem executados, serviços esses que são puxado da tabela mao_obra e gravado na tabela detalhe_orcamento, vou postar as tabelas e o select talvez fique mais fácil para ver onde esta o erro.
Tabelas
-- Estrutura da tabela orcamento
--
CREATE TABLE IF NOT EXISTS `orcamento` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`veiculo_id` int(4) NOT NULL,
`cliente_id` int(4) NOT NULL,
`funcio_id` int(11) NOT NULL,
`data` text NOT NULL,
`cond_pagamento` text NOT NULL,
`qtdparcelas` text NOT NULL,
`valorparcela` text NOT NULL,
`datainicio` text NOT NULL,
`datatermino` text NOT NULL,
`validadeorcamento` text NOT NULL,
`ativo` enum('0','1') NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `veiculo_id` (`veiculo_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=22 ;
--
-- RELATIONS FOR TABLE orcamento:
-- veiculo_id
-- veiculos -> id
-- Limitadores para a tabela orcamento
--
ALTER TABLE `orcamento`
ADD CONSTRAINT `orcamento_ibfk_1` FOREIGN KEY (`veiculo_id`) REFERENCES `veiculos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
CREATE TABLE IF NOT EXISTS `detalhe_orcamento` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`orcamento_id` int(11) NOT NULL,
`mao_obra_id` varchar(100) NOT NULL,
`preco` text NOT NULL,
PRIMARY KEY (`id`),
KEY `mao_obra_id` (`mao_obra_id`),
KEY `orcamento_id` (`orcamento_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=397 ;
--
-- RELATIONS FOR TABLE detalhe_orcamento:
-- mao_obra_id
-- mao_obra -> id
-- orcamento_id
-- orcamento -> id
-- Estrutura da tabela mao_obra
--
CREATE TABLE IF NOT EXISTS `mao_obra` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`mao_obra` text NOT NULL,
`orcamento_id` int(11) NOT NULL,
`preco` text NOT NULL,
PRIMARY KEY (`id`),
KEY `orcamento_id` (`orcamento_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=18 ;
Código do select no exibir_orcamento.php
$id = $_GET['id'];
$seleciona = mysql_query("
SELECT orcamento., clientes., veiculos., detalhe_orcamento., mao_obra.*FROM orcamento
INNER JOIN clientes ON clientes.id = orcamento.cliente_id
INNER JOIN veiculos ON veiculos.id = orcamento.cliente_id
INNER JOIN detalhe_orcamento ON detalhe_orcamento.orcamento_id = orcamento.id
INNER JOIN mao_obra ON mao_obra.id = detalhe_orcamento.mao_obra_id
WHERE orcamento.id = '$id'" ) or die (mysql_error());
if($seleciona == ''){
echo 'Erro';
}else{
while($res_id = $row = mysql_fetch_assoc($seleciona)){
Carregando comentários...