• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

soullucky

Ajuda nas Query mysql com PHP

6 mensagens neste tópico

Boas

Vou tentar explicar a minha dúvida de uma maneira simples.

Então é assim eu tenho duas tabelas Registos e Carros em que na tabela Registos tenho os campos id_registo e tipo. Na tabela Carros tenho id_carro e id_registo(Chave externa da tabela registos).

Objectivo:

Preciso saber através do id_carro todos os id_registo para obter todos os registos de um determinado carro.

para obter os id_registo serial algo assim

SELECT *

FROM `carros`

WHERE `id_carro' = (Inseria um id de um carro a minha escolha)

Agora preciso saber

SELECT *

FROM `registos`

WHERE `id_registo` =( Aqui seria o resultado da query anterior dos id_registo)

AND `tipo` = 'Normal'

Isto com um registo eu consigo fazer, mas se existir mais que um registo já não funciona bem

A minha duvida é se preciso usar um ciclo, pois o resultado da primeira query pode ter mais que um valor.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Tenho a sensação que as tabelas estão mal organizadas. Pela lógica, o registo deveria conter o id_carro, pois o carro não tem como característica ter um "registo". Exemplificando, quando compramos um carro, ele não está associado a uma oficina a que precisemos de ir mais tarde. Só quando vamos a essa oficina é que a mesma cria um registo associado ao nosso carro, e essa informação fica associada ao registo.

Ou seja :

registos :

- id_registo

- tipo

- id_carro

carros :

- id_carro

Se a tabela ficasse assim, bastava isto (exemplo) :

SELECT * FROM registos WHERE tipo = 'normal' AND id_carro = 6;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas

Porque o objectivo e saber o total de registos do tipo Normal de um determinado carro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas

Tenho de concordar com o yoda.pt. De qualquer maneira apenas é necessário de saber como se organiza a informação.

Registo:1 ------- ∞ :Carros

Na tua estrutura tens a lógica é de 1 registo muitos carros, mas cada carro apenas pode pertencer a um registo. Terás de repetir o carro caso o queiras colocar novamente, criando repetição de dados.

Carros:1 ------- ∞ :Registos

Se o teu objectivo é ter 1 carros muitos registos por carro tens de colocar a ligação na tabela de registos. Nesta opção não conseguirás ter mais de um carro por registo

Carros:1 ------- ∞ :Ligação: ∞ ------- 1 Registos

No entanto se o objectivo é teres registos com muitos carros deves usar uma terceira tabela para fazeres a ligação dos dados.

Se disseres qual é o teu objectivo em função desta minha resposta poderei ajudar melhor naquilo que pretendes.

Off Topic: Estou de volta ao activo no fórum.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas

Sim eu uso 3 tabelas se calhar foi falha minha não dizer que tenho uma tabela com o nome do carro e o id_carro

o problema que me deparo e fazer um tipo de ciclo para que a consulta às bases de dados corra todos valores e não um como estou me deparando, a consulta encontra o primeiro registo com as condições à minha query e sai, mais existe mais registos na bd que também se enquadram a minha query. Ou seja o resultado da minha query é só um valor, mas pode ser mais.

Desculpem la esta ignorância, eu já adiantei tanta coisa nesta "Aplicação" e simplesmente não queria deixar a meio.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora