Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 56
Sexo: Masculino

JOIN em 3 ou mais tabelas

04-11-2011 15:19

Preciso de uma ajuda INNER JOIN

Tenho as seguintes Tabelas e campos:

Banco: servicetracker

Tabela ATIVO
Campos:

id_ativo
id
serialnumber
modelono

Tabela funcionario

Campos:
personalinbr
enterpriseid
mobilephone
officephone

Tabela p2p

Campo:

aplication

Tabela Replacement

Campo:

Lote


Estou fazendo o JOIN e se digito na página http://www.gynnetpoint.com.br/servicetracker/form.php qualquer serial "6474L1BC7NN" ou "6474L1BBGPB", busca informação apenas do serial "6474L1BBGPB".


$dbname = "servicetracker";
$sql = "select * from ativo a
inner join funcionario b on a.id = b.id
inner join workstationversion c on a.id = c.id
inner join p2p d on a.id = d.id
Where b.id= 2";
$result = mysql_query ($sql);


Por favor poderiam informar onde estou errando?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17519
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

JOIN em 3 ou mais tabelas

04-11-2011 15:34

Acredito que o problema esteja aqui

Where b.id= 2

Você seleciona sembre o id 2
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 56
Sexo: Masculino

JOIN em 3 ou mais tabelas

04-11-2011 15:39

Não, na verdade quero digitar um serial e preencher os campos para quem está assignado aquele serial, mais até o momento não consegui fazer isso, ele busca uma unica pessoa para qualquer serial que digito
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17519
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

JOIN em 3 ou mais tabelas

04-11-2011 15:43

Você teria que adicionar uma condição tipo WHERE serial=... Esse valor você pega do POST
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 56
Sexo: Masculino

JOIN em 3 ou mais tabelas

04-11-2011 15:46

Não consegui entender o que quis me passar, perdão pela falta de atenção :(
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17519
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

JOIN em 3 ou mais tabelas

04-11-2011 15:51

Você tem ai

Where b.id= 2

Esse id 2, qual o serial dele?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 56
Sexo: Masculino

JOIN em 3 ou mais tabelas

04-11-2011 15:52

6474L1BBGPB
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17519
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

JOIN em 3 ou mais tabelas

04-11-2011 17:58

Então, isso porque você deixou fixo. Agora, pega o campo do id, que você deve passar por post, e coloca ai, tipo

Where b.id= '$_POST['id']'
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 56
Sexo: Masculino

JOIN em 3 ou mais tabelas

05-11-2011 11:47

Bom dia,
Fiz o que você me sugeriu e apresentou o seguinte problema.

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING OR T_VARIABLE OR T_NUM_STRING IN E:\Domains\gynnetpoint.com.br\wwwroot\servicetracker\consulta.php ON line 91 PHP Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING OR T_VARIABLE OR T_NUM_STRING IN E:\Domains\gynnetpoint.com.br\wwwroot\servicetracker\consulta.php ON line 91


Na página consulta.php

coloquei

$dbname = "servicetracker"; $sql = "select * from ativo a  inner join funcionario b on b.id = b.id inner join workstationversion c on b.id = c.id inner join p2p d on b.id = d.id Where b.id= '$_POST['id']"; $result = mysql_query ($sql); 

Na pagina cadastrar_chamada.php

coloquei

$id =$_POST['id'] 

O que devo fazer agora, pois apresentou problemas.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17519
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

JOIN em 3 ou mais tabelas

05-11-2011 11:56

Faltou uma aspas depois do valor do post, e também não escapou o valor corretamente.

Tenta

Where b.id= '{$_POST['id']}'";

ou

Where b.id= '".$_POST['id']."'";
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 56
Sexo: Masculino

JOIN em 3 ou mais tabelas

05-11-2011 11:58

As tabelas Mysql estão assim:

Tabela ATIVO
Campos:

id_ativo
id
serialnumber
modelono

Tabela funcionario

Campos:
id_personalibr
id
personalinbr
enterpriseid
mobilephone
officephone

Tabela p2p

Campo:
id_p2p
id
aplication

Tabela Replacement

Campo:
id_replacement
id
Lote

Vou te enviar o link onde está a imagem de todo o banco servicetracketr

http://www.gynnetpoint.com.br/servicetr ... obanco.jpg
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17519
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

JOIN em 3 ou mais tabelas

05-11-2011 11:59

Já tentou o WHERE que indiquei?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 56
Sexo: Masculino

JOIN em 3 ou mais tabelas

05-11-2011 12:03

Da primeira forma ficou o site em branco, nao buscou as informações

$dbname = "servicetracker"; $sql = "select * from ativo a  inner join funcionario b on a.id = b.id inner join workstationversion c on a.id = c.id inner join p2p d on a.id = d.id Where b.id= '{$_POST['id']}'"; $result = mysql_query ($sql); 

Da segunda também ficou em branco

$dbname = "servicetracker"; $sql = "select * from ativo a  inner join funcionario b on a.id = b.id inner join workstationversion c on a.id = c.id inner join p2p d on a.id = d.id Where b.id= '".$_POST['id']."'";  $result = mysql_query ($sql); 

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17519
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

JOIN em 3 ou mais tabelas

05-11-2011 12:11

O campo que você manda para a página da consulta, é id mesmo?

<form method="post".. <input type="text" name="id"..

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 56
Sexo: Masculino

JOIN em 3 ou mais tabelas

05-11-2011 12:18

Veja a baixo as tabelas e seus campos

Tabela ativo:
id_ativo | id | serialnumber | modelono | type | manufacturer | enterpriseid | personalinbr |

Tabela funcionario
id_funcionario | id personalinbr | enterpriseid | level | xworkforcecareerlvldescr | mobilephone | officephoneextension officephone |

Tabela P2p
id_p2p | id | personalinbr | enterpriseid | serialnumber | aplication

Tabela Replacement
id_replacement | id | serialnumber | modelono | Funding Group | FY Replaced | Lote Q | Status

Aguardo!
0
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 56
Sexo: Masculino

JOIN em 3 ou mais tabelas

05-11-2011 12:20

vou na farmacia buscar o remedio da minha vo, pois ela ta passando mal e ja retorno, te encontro mais tarde?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17519
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

JOIN em 3 ou mais tabelas

05-11-2011 12:33

Sem problema. Mas, como você usando o id fixo 2 estava buscando, o que indiquei foi passar o id por post. Para isso, você vai ter que ver no seu formulário qual o campo que passa o id, e colocar ai no WHERE pelo post.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 56
Sexo: Masculino

JOIN em 3 ou mais tabelas

05-11-2011 15:22

Id é PRIMARY KEY de todas a tabelas

Exemplo:

CREATE TABLE IF NOT EXISTS `ativo` (   `id_ativo` INT(11) NOT NULL,   `id` INT(11) NOT NULL AUTO_INCREMENT,   `serialnumber` VARCHAR(200) NOT NULL,   `modelono` VARCHAR(200) NOT NULL,   `type` VARCHAR(200) NOT NULL,   `manufacturer` VARCHAR(200) NOT NULL,   `enterpriseid` VARCHAR(200) NOT NULL,   `personalinbr` VARCHAR(200) NOT NULL,   `status` VARCHAR(200) NOT NULL,   `compliancestatus` VARCHAR(200) NOT NULL,   `employmentstatus` VARCHAR(200) DEFAULT NULL,   `employeenumber` VARCHAR(200) DEFAULT NULL,   `comments` VARCHAR(200) DEFAULT NULL,   `location` VARCHAR(200) DEFAULT NULL,   `laststatus` VARCHAR(200) DEFAULT NULL,   `numberofassigned` VARCHAR(200) DEFAULT NULL,   `projectclientdeal` VARCHAR(200) DEFAULT NULL,   `valuewebcomponentid` VARCHAR(200) NOT NULL,   `mastervaluewebcomponentid` VARCHAR(200) NOT NULL,   `masterlocation` VARCHAR(200) NOT NULL,   `mastervaluewebsystemid` VARCHAR(200) NOT NULL,   `substatus` VARCHAR(200) NOT NULL,   `mastercompliancestatus` VARCHAR(200) NOT NULL,   `masterhrrepresentative` VARCHAR(200) NOT NULL,   `costcenter` VARCHAR(200) NOT NULL,   `wbs` VARCHAR(200) NOT NULL,   `chargebackprice` VARCHAR(200) NOT NULL,   `masterwbs` VARCHAR(200) NOT NULL,   `usercostcenter` VARCHAR(200) NOT NULL,   `masterassetid` VARCHAR(200) NOT NULL,   `masterassetstatus` VARCHAR(200) NOT NULL,   `masterserialnumber` VARCHAR(200) NOT NULL,   `username` VARCHAR(200) NOT NULL,   `statusprovince` VARCHAR(200) NOT NULL,   `email` VARCHAR(200) NOT NULL,   `userlocation` VARCHAR(200) NOT NULL,   `usersurname` VARCHAR(200) NOT NULL,   `userworkforce` VARCHAR(200) NOT NULL,   `calculateduser` VARCHAR(200) NOT NULL,   `imageversion` VARCHAR(200) NOT NULL,   `ipadress` VARCHAR(200) NOT NULL,   `assettag` VARCHAR(200) NOT NULL,   `corporatestruture` VARCHAR(200) NOT NULL,   PRIMARY KEY (`id`) ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;   ============================================= CREATE TABLE IF NOT EXISTS `funcionario` (   `id_funcionario` INT(11) NOT NULL AUTO_INCREMENT,   `id` INT(11) NOT NULL,   `personalinbr` VARCHAR(200) NOT NULL,   `enterpriseid` VARCHAR(200) NOT NULL,   `level` VARCHAR(200) NOT NULL,   `xworkforcecareerlvldescr` VARCHAR(200) NOT NULL,   `mobilephone` VARCHAR(200) NOT NULL,   `officephoneextension` text NOT NULL,   `officephone` text,   `homefone` text NOT NULL,   `metrocitydescr` text NOT NULL,   `local` VARCHAR(200) NOT NULL,   `workforcegrpdescr` VARCHAR(200) NOT NULL,   `costcenternbr` VARCHAR(200) NOT NULL,   PRIMARY KEY (`id_funcionario`) ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;   ================================================ CREATE TABLE IF NOT EXISTS `p2p` (   `id_p2p` INT(11) NOT NULL AUTO_INCREMENT,   `id` INT(11) NOT NULL,   `personalinbr` VARCHAR(200) NOT NULL,   `enterpriseid` VARCHAR(200) NOT NULL,   `serialnumber` VARCHAR(200) NOT NULL,   `aplication` VARCHAR(200) NOT NULL,   `importedgeographicunitdescr` VARCHAR(200) NOT NULL,   `importedmetrocitydescr` VARCHAR(200) NOT NULL,   `importedcountrynm` VARCHAR(200) NOT NULL,   PRIMARY KEY (`id_p2p`) ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;   ================================================== CREATE TABLE IF NOT EXISTS `replacement` (   `id_replacement` INT(11) NOT NULL AUTO_INCREMENT,   `id` INT(11) NOT NULL,   `serialnumber` VARCHAR(200) NOT NULL,   `modelono` VARCHAR(200) NOT NULL,   `Funding Group` VARCHAR(200) NOT NULL,   `FY Replaced` VARCHAR(200) NOT NULL,   `Lote` VARCHAR(200) NOT NULL,   `Q` VARCHAR(200) NOT NULL,   `Status` VARCHAR(200) NOT NULL,   PRIMARY KEY (`id_replacement`) ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

ESPERO QUE TENHA ENTENDIDO
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17519
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

JOIN em 3 ou mais tabelas

05-11-2011 15:43

Veja pela lógica. Você tinha o seguinte:

Where b.id= '2'

Ou seja, você colocava o SERIAL no formulário, mas, sempre que buscava no bd retornava dados do mesmo SERIAL "com base no id 2", isso porque você definiu que sempre tem que ser os dados do id 2 ai no WHERE.

Essa tabela ativo que tem o id, tem também o SERIAL, com serialnumber

Tenta trocar esse WHERE acima pelo seguinte:

Where a.id= 'AQUI ENTRA UM SERIAL JÁ CADASTRADO'

Se der resultado positivo, então o resultado está relativo ao serial de entrada nesse trecho.

Ai você irá tentar pegar o valor do input serial, o campo que você coloca o serial

Where a.id= '{$_POST['serial']}'

Nesse serial você coloca o name do campo onde você coloca o número serial para consultar.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 56
Sexo: Masculino

JOIN em 3 ou mais tabelas

05-11-2011 17:53

Das duas formas não rolou, não trouxe nenhum resultado

//************************************************************************* $dbname = "servicetracker"; $sql = "select * from ativo where serialnumber = '$localizacao'"; $result = mysql_query ($sql); //************************************************************************* $dbname = "servicetracker"; $sql = "select * from ativo a  inner join funcionario b on a.id = b.id inner join workstationversion c on a.id = c.id inner join p2p d on a.id = d.id Where a.id= [color=#FF0000]'".$_POST['localizacao']."'";[/color] $result = mysql_query ($sql); 

Nome do campo onde coloca o serial "$localizacao"

Coloquei da forma que vc falou e novamente ta vindo em branco a pagina..
:sweat:
0
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 56
Sexo: Masculino

JOIN em 3 ou mais tabelas

05-11-2011 18:47

Só retificando aquele 3 comandos que coloquei para vc observar.

1.0

<?php function bg_cell($contador) {     $valor = $contador % 2;     if ($valor == '1')         echo "#EEEEEE";     else         echo "#DDDDDD";  } ?> [color=#0040BF]2.0[/color] <?php        $contador = '1';     while ( $valor = mysql_fetch_array($result) )     { ?> [color=#0080BF]3.0[/color] <?php     $contador++;     } //end while ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17519
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

JOIN em 3 ou mais tabelas

05-11-2011 21:18

Dá um echo em localizacao

echo $_POST['localizacao']; 

Para ver se realmente o valor está vindo. Observe também que você usa o id, e pelo que entendi, a coluna seria serialnumber

Where a.serialnumber= '{$_POST['localizacao']}' 

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 56
Sexo: Masculino

JOIN em 3 ou mais tabelas

05-11-2011 21:51

Amigo,
coloquei assim:

>php? $dbname = "servicetracker"; $sql = "select * from ativo a  inner join funcionario b on a.id = b.id inner join workstationversion c on a.id = c.id inner join p2p d on a.id = d.id Where a.serialnumber= '{$_POST['localizacao']}'"; echo $_POST['localizacao']; $result = mysql_query ($sql); //*************************************************************************

e não buscou resultado, some a pagina e fica apenas o enviar e imprimir e limpar
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17519
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

JOIN em 3 ou mais tabelas

05-11-2011 22:09

Essa tag de abertura do PHP está errada

>php?

correto

<?php

E coloca o echo antes da query

echo $_POST['localizacao']; $dbname = "servicetracker"; $sql = "select * from ativo a  ....

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 56
Sexo: Masculino

JOIN em 3 ou mais tabelas

05-11-2011 22:18

Nada ainda, mesma coisa. :( :( :( :( :( :( :( :sweat: :sweat: :sweat: :sweat:

<?php { echo $_POST['localizacao']; } $dbname = "servicetracker"; $sql = "select * from ativo a  inner join funcionario b on a.id = b.id inner join workstationversion c on a.id = c.id inner join p2p d on a.id = d.id Where a.serialnumber = '{$_POST['localizacao']}'"; $result = mysql_query ($sql); ?>

0

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado