Ariel 0 Denunciar post Postado Dezembro 24, 2004 Ola.... preciso de uma ajuda aqui... estou com um problema.... veja o meu caso: estou criando um mini sistema de curriculum. Onde tem o cadastro dos curriculums, e o cadastro das vagas. sao 3 tabelas (ate agora) 1- curriculum 2- empresa 3- vaga Estou tentando fazer uma consulta para exibir todas as vagas cadastradas, montrando alguns campos principais da tabela vaga, e tambem indicando de que empresa é. Para isso, criei na tabela empresa um campo autonumeracao chamado: idemp Criei tambem na tabela vaga um campo com o nome nome para que possa identificar de qual empresa é a vaga: idemp O meu problema é que, quando executo a consulta, aparece a ID da empresa corretamente em cada quadro da vaga, porem, no local do nome da empresa, ao inves de aparecer o nome da respectiva empresa q a ID está relacionada, aparece o nome da empresa da ultima vaga cadastrada... :neutral: Vou postar parte do codigo q estou a usar, e por favor, se possivel você poder me ajuda a resolver essa parada... <?phpinclude("conexao.php");mysql_connect($host,$user,$pass) or die ("Impossivel Conectar ao Servidor MySQL");mysql_select_db($db) or die ("Impossivel Abrir Database");$sql = "SELECT * FROM vagas ORDER BY data desc";$rs = mysql_query($sql) or die ("Não foi possivel efetuar a consulta");$sql2 = "SELECT idemp, nomeempresa FROM empresa";$rs2 = mysql_query($sql2) or die ("Não foi possivel efetuar a consulta2");while ($linha = mysql_fetch_array($rs)) {$idvaga = $linha["idvaga"];$data = $linha["data"];$catcargo = $linha["catcargo"];$loginempresa = $linha["loginempresa"];$titulocargo = $linha["titulocargo"];$atribcargo = $linha["atribcargo"];$sexocargo = $linha["sexocargo"];$faixaetariacargo = $linha["faixaetariacargo"];$escolaridadecargo = $linha["escolaridadecargo"];$cursoscargo = $linha["cursoscargo"];$idiomacargo = $linha["idiomacargo"];$oinfocargo = $linha["oinfocargo"];$salariocargo = $linha["salariocargo"];$descsalariocargo = $linha["descsalariocargo"];$benecargo = $linha["benecargo"];$idemp = $linha["idemp"];while ($linha2 = mysql_fetch_array($rs2)) $nomeempresa = $linha2["nomeempresa"];echo "parte html";}mysql_free_result($rs);mysql_close();?> Se alguem puder me ajudar a corrigir isso... estarei grato. http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Dezembro 24, 2004 você nao relacionou nenhuma tabela pra isso vou dar um exemplo simples pra você entender tabela produto id_produto nome_produto fk_categoria tabela categoria id_categoria categoria viu que na tabela produto eu gravo o id da categoria isso ja esta me mostrando qual é a categoria e estou relacionando as tabelas e pra listar você faz assim: SELECT * FROM produto,categoria WHERE produto.fk_categoria = categoria.id_categoria deu pra entender +- ? Compartilhar este post Link para o post Compartilhar em outros sites
Ariel 0 Denunciar post Postado Dezembro 24, 2004 no meu eu coloquei sim um campo igual pra relacionar.Porem, eu usei o mesmo nome.na tabela empresa:idempna tabela vagas tbm tem essa variavel:idempao se incluir a vaga, é gravado corretamente dentro da tabela vagas a ID da empresa, e quando eu faço a consulta tbm.Somente estou tendo problema pra mostrar o nome da empresa, puxando dessa ID q está gravada na tabela vagas...---Mudei a instrucao SQL pra isso:$sql = "SELECT * FROM vagas,empresa ORDER BY data desc WHERE vagas.idemp = empresa.idemp";$rs = mysql_query($sql) or die ("Não foi possivel efetuar a consulta");mas nao funcionou. Retorna que nao foi possivel efetuar a consulta.oq fazer ? Compartilhar este post Link para o post Compartilhar em outros sites
maubiasotto 0 Denunciar post Postado Dezembro 24, 2004 e ai Ariel? tente fazer isso. PHP [/tr][tr]$sql = "SELECT * FROM vagas INNER JOIN empresa on (vagas.idemp = empresa.idemp) ORDER BY data desc "; $rs = mysql_query($sql) or die ("Não foi possivel efetuar a consulta"); [/tr] Compartilhar este post Link para o post Compartilhar em outros sites
fitinge 0 Denunciar post Postado Dezembro 24, 2004 Você está usando um ORDER antes do WHERE... $sql = "SELECT * FROM vagas,empresa ORDER BY data desc WHERE vagas.idemp = empresa.idemp";$rs = mysql_query($sql) or die ("Não foi possivel efetuar a consulta"); Tente fazer assim: $sql = "SELECT * FROM vagas,empresa WHERE vagas.idemp = empresa.idemp ORDER BY data desc ";$rs = mysql_query($sql) or die ("Não foi possivel efetuar a consulta"); =) Compartilhar este post Link para o post Compartilhar em outros sites
Ariel 0 Denunciar post Postado Dezembro 24, 2004 fitinge , maubiasotto ... tentei das 2 formas conforme recomendaram... mas ainda retorna erro "nao foi possivel..."eu ja havia tentado usar o inner join... tbm sem sucesso... :( Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Dezembro 26, 2004 é simples cara: mysql_query("SELECT * FROM vagas,empresa WHERE vagas.idemp = empresa.idemp"); essa sql vai selecionar tudo da tabela vagas e empresa que for idemp = idemp é impossivel da erro a nao ser se nao tiver idem iguais cara testa primeiro no proprio mysql essa consulta ou no phpmyadmin dai você ve o que pode ta errado Compartilhar este post Link para o post Compartilhar em outros sites
Ariel 0 Denunciar post Postado Dezembro 27, 2004 BOM... funcionou... porem... eu queria organizar por ondem de data... pois tem um campo q eu coloquei que quando se faz o cadastro,grava a data... porem... se eu adicionar nessa ultima sintaxa a instrucao "ORDER BY data desc" .. dá erro.. diz q nao foi possivel executar..será q é possivel fazer essa organizacao? Compartilhar este post Link para o post Compartilhar em outros sites
Ariel 0 Denunciar post Postado Dezembro 29, 2004 alguem saberia uma sintaxe correta a ser usada ? Compartilhar este post Link para o post Compartilhar em outros sites
ramongsoares 0 Denunciar post Postado Dezembro 30, 2004 Depende de que tabela tenha o campo data: Na tabela VAGAS: PHP [/tr][tr]mysql_query("SELECT * FROM vagas,empresa WHERE vagas.idemp = empresa.idemp ORDER BY vagas.data DESC"); [/tr] Na tabela EMPRESA PHP [/tr][tr]mysql_query("SELECT * FROM vagas,empresa WHERE vagas.idemp = empresa.idemp ORDER BY empresa.data DESC");[/tr] Compartilhar este post Link para o post Compartilhar em outros sites