Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

z5coyote

Consulta Mysql Php

Recommended Posts

Olá eu tenho varias tabelas de produtos exemplo

 

tabela produtoX

id

nome

fotos

catid

 

tabela produtoY

id

nome

fotos

catid

 

entao criei uma pagina de busca com a consulta e pego os resultados .. até ai tudo certo .. mas eu tenho alguns produtos que uso com o mesmo cat_id

ex :

 

1 - notebook - foto.jpg 1

2 - notebook - foto2.jpg 1

3 - notebook - foto3.jpg 1

 

ai vem minha pergunta como eu crio a consulta que pega os registros com o mesmo cat_id na mesma consulta de pesquisa ?

espero que tenha ficado claro !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente melhor rever hehe :P mas no seu caso você poderia usar inner join, não sei se iria dar certo mas não custa tentar:

SELECT * FROM `produtoX` INNER JOIN `produtoY` ON `produtoX`.catid = `produtoY`.catid WHERE `produtoX`.catid LIKE '%1%'

Compartilhar este post


Link para o post
Compartilhar em outros sites

no meu caso divido entre Categorias

 

como Celulares -1 , Carteiras - 2 sao poucos entao sem problemas.

 

Bom minha consulta atual esta

 

$selec = "select catid,nome,file,coment,valor,cat,id FROM carteiras WHERE coment LIKE '%" .($Pbusca)."%' OR nome LIKE '%" .($Pbusca)."%' group by catid2 
UNION
select catid,nome,file,coment,valor,cat,id FROM celulares WHERE coment LIKE '%" .$Pbusca."%' group by catid2

feito isso listo os produtos da pesquisa corretamente .. mais tenho mais produtos que contem o mesmo cat_id que eu gostaria de pegar somente as fotos desses outros produtos, ou seja tenho 1 produto que foi cadastrado 3x alterando o valor e a foto e eu gostaria de listar essas fotos tbm e os valores apenas !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Juro que não entendi mais.. disse que eram tabelas, depois disse que eram colunas.. agora tem uma query com consulta em 2 tabelas... qual a ideia? o que quer fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites
$selec = "select catid,nome,file,coment,valor,cat,id FROM carteiras WHERE coment LIKE '%" .($Pbusca)."%' OR nome LIKE '%" .($Pbusca)."%' group by catid2 
UNION
select catid,nome,file,coment,valor,cat,id FROM celulares WHERE coment LIKE '%" .$Pbusca."%' group by catid2

aqui eu faço a consulta nas duas tabelas certo .. com a minha consulta eu pego o resultado de algumas delas ou somente de uma depende do nome pesquisado etc .. bom acontece que na tabela carteiras ex: eu tenho 3 registro iguais ou seja

id - nome - arquivo - descricao - valor - CAT_ID

1 - cateira couro - foto1.jpg - descricao... - 15,00 - 50

2 - cateira couro - foto2.jpg - descricao... - 15,00 - 50

3 - cateira couro - foto3.jpg - descricao... - 15,00 - 50

 

na minha consulta eu so consigo pegar 1 registro ... com 1 foto e eu gostaria de pegar o primeiro registro da pesquisa juntamente com mais as outras 2 fotos ja que os CAT_IDs sao iguais e as fotos correspondem ao mesmo produto .

Compartilhar este post


Link para o post
Compartilhar em outros sites

por curiosidade... onde você exibe esses registros?

 

para não ter essas repetições, seria interessante vc criar uma tabela que relacione o produto com a foto..

 

ex:

 

tabelaProdutoFoto

 

id_produto foto

1 foto1.jpg

1 foto2.jpg

1 foto3.jpg

 

 

Assim, evita repetir os dados como descrição, valor etc.

Compartilhar este post


Link para o post
Compartilhar em outros sites

em uma pagina de busca normal ... os registros não se repetem esta tudo ok !

esse é um sistema antigo foi trabalho rápido por isso e meio enrolado :) .

 

eu gostaria que através daquela mesma consulta acima eu conseguisse pegar as outras 2 fotos dos produtos que estão com a mesma catid na mesma tabela como explicado . alguma ideia ?

Compartilhar este post


Link para o post
Compartilhar em outros sites
$selec = "select catid,nome,file,coment,valor,cat,id FROM carteiras WHERE coment LIKE '%" .($Pbusca)."%' OR nome LIKE '%" .($Pbusca)."%' 
UNION
select catid,nome,file,coment,valor,cat,id FROM celulares WHERE coment LIKE '%" .$Pbusca."%' 

retirando o group by catid2 da consulta ele me retorna os registro que eu preciso os que estao com o mesmo catid

agora quando eu listo eles aparecem duplicados ... como eu exibo somente 1 registro e guardo os dados dos outros dois registros repetido em uma string ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema seria mensurar a quantidade de fotos que um produto pode ter. Se for um limite fixo de 3 fotos, não tem problemas :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

100% do problema é a modelagem precária do banco de dados

 

se não arrumar isso agora, só vai criar mais e mais problemas

 

Dizer que são poucos produtos não justifica.

Aliás, se você já começa um negócio pensando que ele não vai crescer, melhor nem começar ;)

 

Pense nisso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.