Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia, acredito que meu problema seja trivial e uma simples falta de conhecimento com o left join, mas já refiz o código várias vezes, tentei gambiarras, mas até agora não achei uma solução, gostaria de saber se alguém pode me dar uma luz.
Tenho, na página inicial do site, um sistema de busca com várias listas, antigamente ele só mostrava, por exemplo, o serviço específico que o cliente selecionou. Porém, a empresa quer que haja a opção de mostrar toda a lista de serviço se o cliente quiser, algo teoricamente fácil, e eu consegui fazer isso em todas as categorias da busca, menos na de serviço.
Na tabela eu pego o nome do serviço na tabela serviços e os dados desse serviço na tabela rede_credenciada. O que acontece é que quando eu dou o left join a tabela serviços é "comida" e não aparece no resultado da busca... não sei o que está ocasionando o erro, já que nas listas completas das outras buscas eu fiz um sistema praticamente idêntico e funciona normalmente.
Segue o código:
$connect3 = mysql_query("SELECT s.servico, rc.* , c.cidade FROM rede_credenciada rc LEFT JOIN servicos s ON (s.id_servico = rc.id_servico) LEFT JOIN cidades c ON (c.id_cidade = rc.id_cidade) ORDER BY s.servico, c.cidade ASC");
while ($row3 = mysql_fetch_array($connect3)) if ($id_servico == "todosservicos") echo "<p align='left'><span class='style10'>" . $row3["servico"] . "</span><br><strong>" . $row3["cidade"] . "</strong><br>" . $row3["credenciado"] . "<br>" . $row3["endereco"] . " • Fone: " . $row3["telefone"];
Desde já agradeço :)
Oi, Fernando. Obrigada pela atenção, realmente, fui olhar as tabelas MySQL e na tabela rede_credenciada o id_servicos aparece tudo como -1 enquanto na tabela servicos o id_servico está certinho (1,2,3,4,5...) como eu arrumo isso? Nas outras chaves está tudo certinho. Não fui eu que montei a tabela.
muda o tipo da tabela que tem o sinal de negativo com unsigned
ALTER TABLE nome da tabela MODIFY COLUMN nome da coluna tipo da coluna(tamanho) UNSIGNED;
Agora ficou tudo zero, como eu imaginava, tem algum refresh para dar pra ele pegar os dados da id_servico da tabela servicos ou eu vou ter que alterar na mão? Desculpa a grande quantidade de dúvidas, não mexo muito no MySQL.
Editado: Ok, analisando a tabela e os resultados descobri que o antigo programador fez um gato gigantesco pra resolver o próprio problema, agora acredito que o melhor é refazer essa tabela e essa busca dele do zero, obrigada pela ajuda.
Pode colocar como resolvido.
Não aparece nada porque não deve ter as correspondencias nas clausulas de filtro ou na clausula on.
Veja se esse tópico sobre chaves estrangeiras te ajuda.
Link não autorizado removido