marcusvks 0 Denunciar post Postado Junho 5, 2014 Bom dia galera,Seguinte eu tenho um banco chamado Upload. Nesse banco eu tenho 2 tabelas (materiais e produtos)nas tabelas materiais e produtos eu tenho em ambas um id auto increment e primario, um nome, uma descrição e uma referencia de imagem.eu preciso que os ID das 2 tabelas se juntem tipo:cadastrei um produto ID 1cadastrei um material ID (mesmo sendo o primeiro material cadastrado ele não pode pegar 1 tem que continuar da tabela produto como la já tem 1 agora tem que ser 2)cadastrei outro produto ID 3 (não pode ser 2 pois já tem o 2 na tabela material)cadastrei outro material ID 4ou seja o ID tem que ser auto increment de onde a outra tabela parou... sem repetir o ID--------------------------------------------------------------------------------------------------------------------------------------------Duvida 2:Após conseguir fazer com que eu tenha um ID único ordenado de forma crescente entre as 2 tabelas eu preciso mostrar na tela a ultima coisa cadastrada entre os 2algo do tipo: $sql = mysql_query("SELECT * FROM produtos, materiais ORDER BY id DESC"); Porem acho que essa query não irá funcionar... eu preciso verificar a ultima coisa postada entre os 2 e mostrar em ordem de ultimo cadastrado. Compartilhar este post Link para o post Compartilhar em outros sites
lokaodomau 61 Denunciar post Postado Junho 5, 2014 Não podem ser cadastrados na mesma tabela? A query funciona, mas como não possuem referencias, você deveria realizar duas consultas com um UNION Compartilhar este post Link para o post Compartilhar em outros sites
marcusvks 0 Denunciar post Postado Junho 5, 2014 Não pois apesar de possuírem no começo atributos iguais mais tarde cada um vai ter muita coisa diferente na hora do cadastro.Preciso arrumar um jeito (se é que tem) de fazer essa contagem do ID auto increment juntando as 2 tabelas sem repetir Compartilhar este post Link para o post Compartilhar em outros sites
lokaodomau 61 Denunciar post Postado Junho 5, 2014 Qual é o problema de ter o mesmo id já que são coisas diferentes? Compartilhar este post Link para o post Compartilhar em outros sites
marcusvks 0 Denunciar post Postado Junho 6, 2014 não entendi Compartilhar este post Link para o post Compartilhar em outros sites
lokaodomau 61 Denunciar post Postado Junho 6, 2014 Qual o problema em haver o mesmo id em ambas as tabelas? Entendo que produto é uma coisa e material é outro, qual é o problema em haver o produto.id = 1 e o material.id = 1? Compartilhar este post Link para o post Compartilhar em outros sites
marcusvks 0 Denunciar post Postado Junho 6, 2014 Ata... então o problema é na hora da exibição do conteúdo na pagina.eu quero mostrar na pagina sempre a ultima coisa que foi cadastrada entre estas 2 tabelas.Se o produto tiver o ID 1 e o material ID 1 como que eu vou mostrar o ultimo conteúdo postado?ou seja como que uma Query tipo essa vai funcionar daí: $sql = mysql_query("SELECT * FROM produtos, materiais ORDER BY id DESC"); Compartilhar este post Link para o post Compartilhar em outros sites
Marlon Pacheco 132 Denunciar post Postado Junho 6, 2014 Não testei, mas o problema é que você está utilizando um campo que existe nas 2 tabelas, então o SGDB não sabe qual deve usar para ordenar. Mude para: $sql = mysql_query("SELECT * FROM produtos, materiais ORDER BY produtos.id DESC, materiais.id DESC"); Compartilhar este post Link para o post Compartilhar em outros sites
marcusvks 0 Denunciar post Postado Junho 9, 2014 Obrigado pela resposta Marlon, mas primeiro eu preciso arrumar as 2 tabelas para pegar ID diferente e auto increment como eu expliquei porque se não essa query de nada adianta se cada tabela tiver IDs duplicados Compartilhar este post Link para o post Compartilhar em outros sites
lokaodomau 61 Denunciar post Postado Junho 9, 2014 Entendi que seu objetivo é pegar o ID do último registro entre as duas tabelas. Mas essa sua query é de relacionamento, para não acabar com o desempenho dela ao passar do tempo, ela deve ter um relacionamento tabela1.id = tabela2.id, dessa forma traz os registros que são iguais, a melhor forma é fazer duas consultas para encontrar o resultado. Para isso você insere um campo dthr_cadastro, que o seu valor no INSERT será NOW() (sem aspas), as consultas ficariam: Tabela produtos: SELECT * FROM produtos WHERE dthr_cadastro = (SELECT MAX(dthr_cadastro) FROM produtos) ORDER BY id DESC LIMIT 1 Tabela materiais: SELECT * FROM materiais WHERE dthr_cadastro = (SELECT MAX(dthr_cadastro) FROM materiais) ORDER BY id DESC LIMIT 1 Aí você faz a comparação entre os dados dos resultados (entre os campos dthr_cadastro e id). Compartilhar este post Link para o post Compartilhar em outros sites
marcusvks 0 Denunciar post Postado Junho 10, 2014 Agradeço a todos pela ajuda. A solução para o problema foi cadastrar tudo em uma tabela só, e separar os atributos que elas vão receber em paginas de formulário pré programadas.Não ficou totalmente certo, pois quando eu cadastrar um material vai ter campos da tabela q sao de produtos em branco e vice versa. Mas funcionou... Compartilhar este post Link para o post Compartilhar em outros sites