P3rukao 0 Denunciar post Postado Fevereiro 20, 2009 Povu meu... Já Rodei pelo fórum todo (principalmente o de Modelagem/SQL) atrás de uma solução para o meu problema mas não consegui nada até agora... Seguinte: Eu tenho, em meu site, uma área para efetuar busca no sistema; Esse sistema, vai procurar por uma palavra chave que eu informei no Form, e essa consulta deve ser feita em 4 tabelas (Noticias, Empreendimentos, Televisao, e Radio); Essas tabelas não possuem qualquer vínculo uma com as outras, portanto, acho que não cabe aqui usar joins ou qqr outro tipo de uniao de dados. O que eu preciso eh buscar os dados e retorna-los, CASO for achado em uma dessas tabelas. OBS1: se achar em mais de uma, tem que exibi-los também,..., de preferência, exibindo na lista de resultados, em quanl tabela foi achado aquele resultado!!! OBS2: Em todos os posts que eu pesquisei, ensinam a fazer pesquisando em uma tabela única, q no meu caso não é possivel. No meu caso, eu tenho várias tabelas e elas são todas independentes; » Alguém pode dar uma força??? Att... Compartilhar este post Link para o post Compartilhar em outros sites
juni0r 0 Denunciar post Postado Fevereiro 20, 2009 OBS2: Em todos os posts que eu pesquisei, ensinam a fazer pesquisando em uma tabela única, q no meu caso não é possivel. No meu caso, eu tenho várias tabelas e elas são todas independentes; Porque você não pode fazer 4 consultas diferentes? Compartilhar este post Link para o post Compartilhar em outros sites
P3rukao 0 Denunciar post Postado Fevereiro 20, 2009 Bom... eu tenho soh um campo para informar o que eu quero procurar... Para solucionar esse meu problema, facim-facim, era soh eu colocar uns RADIOBUTONS, com a opção pro cara escolher onde quer procurar!!! Mas eu nem posso mais mecher no layout do site (num tem mais espaço pra por isso), e também não fica muito "confortável" para o usuario. Eu não estou conseguindo imaginar como fazer essas 4 consultas de uma soh vez.... :huh: » Podes me dar uma luz???? Compartilhar este post Link para o post Compartilhar em outros sites
Rispiridon 3 Denunciar post Postado Fevereiro 20, 2009 so você dar um select em todas assim select * from tabela1, tabela2,tabela3,tabela5 where field1='pesquisa' or field2='pesquisa' or field3='pesquisa' Compartilhar este post Link para o post Compartilhar em outros sites
novato_PHP 0 Denunciar post Postado Fevereiro 20, 2009 Será que não pode usar esta lógica? Olhe: $sql1="SELECT * FROM tabela1 WHERE campo=$variavel_recebida_form"; $resultado1= mysql_num_rows($sql1); if ($resultado1>0) { comando que desejar.... } $sql2="SELECT * FROM tabela2 WHERE campo=$variavel_recebida_form"; $resultado2= mysql_num_rows($sql2); if ($resultado2>0) { comando que desejar.... } $sql3="SELECT * FROM tabela3 WHERE campo=$variavel_recebida_form"; $resultado3=mysql_num_rows($sql3); if ($resultado3>0) { comando que desejar.... } E assim vai... O melhor mesmo é Usar Inner Join, mas como suas tabelas não tem nenhum relacionamento.... Editado para corigir um erro no código Compartilhar este post Link para o post Compartilhar em outros sites
P3rukao 0 Denunciar post Postado Fevereiro 20, 2009 O ultimo teste que eu fiz aqui, usei isto aqui: » 1º: Estou fazendo esta consulta: $comandProc = "SELECT noticias.titulo as 'ntitulo' FROM noticias WHERE noticias.titulo LIKE '%".$stringBusca."%' AND noticias.excluido = 0"; Essa variável $stringBusca, é a que recebe o valor passado por POST do meu form de busca. Em minha tabela NOTICIAS eu tenho 4 itens que atendem a condição excluido=0; Problema: Só estou visualizando 3 dos 4 itens da consulta; =/ » 2º: Na segunda tentativa: $comandProc = "SELECT noticias.titulo as 'ntitulo', televisao.nome as 'tnome' FROM noticias, televisao WHERE noticias.titulo LIKE '%".$stringBusca."%' OR televisao.nome LIKE '%".$stringBusca."%' AND noticias.excluido = 0 AND televisao.excluido = 0"; Tentei mesclar duas tabelas onde meu sistema deve procurar por valores; Digitei um determinado valor para a busca, e... em minha tabela notícia APENAS 1 item atende a minha consulta, porém ele está me retornando 5 valores, que são a mesma quantidade de itens q a tabela TELEVISAO contém; Quando executei essa mesma consulta no phpMyAdmin, ele me retornou todos os itens da TELEVISAO (5 itens), cada um desses, acompanhado do unico valor da tabela NOTICIA; Eu já fiz um outro projeto em SQL SERVER, e para fazer uma busca no sistema, eu criei uma função para poder fazer a busca e retornar os dados.. Já procurei no google, no forum, mas não achei nada falando sobre isso, intaum: » Tem como criar função no mySql, para poder retornar dados de consuta??? Como já disse, e dei alguns exemplos, esse meu sistema contém várias tabelas... Até agora, eu identifiquei 4 tabelas onde preciso fazer essa consulta... cada tabela tem pelo menos 3 campos a pesquizar(titulo, data, e texto, por exemplo)... Há uma condição também, para q apenas as tabelas com o campo excluido = 0, sejam incluidas nessa busca... Espero ter deixado claro a minha duvida!!! ------------------------------------ Novato, atua dica parece ser boa, vou testar aqui e depois aviso o que deu... Compartilhar este post Link para o post Compartilhar em outros sites
P3rukao 0 Denunciar post Postado Fevereiro 20, 2009 Novato, lah na cláusula WHERE, qual a diferença de usar o '=' e usar o 'LIKE'??? Ou tanto faz??? E você pôs $mysql_num_rows, no exemplo.... isso num existe naum neah?? num seria sem o $??? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Fevereiro 20, 2009 O = procura exatamente o termo.. o LIKE procura os semelhantes tb.. resumidamente é isso. Compartilhar este post Link para o post Compartilhar em outros sites
P3rukao 0 Denunciar post Postado Fevereiro 20, 2009 errrm... intaum como eh um sistema de busca... e ele vai pegar qqr coisa q contenha aquele termo em especifico, eu usaria campo LIKE '%$termo%'... estou certo??? Compartilhar este post Link para o post Compartilhar em outros sites
P3rukao 0 Denunciar post Postado Fevereiro 20, 2009 Eu usei o modelo que você me mostrou Novato, e ele está 99% perfeito para o que eu havia mensionado. Inclusive, eu posso mostrar de qual tabela eu estou tendo o retorno da busca, que era uma das minhas necessidades nesse modelo de busca!!! Só não está funcionando uma coisa nesse seguinte comando: $sqlNoticia = mysql_query("SELECT * FROM noticias WHERE titulo LIKE '%".$stringBusca."%' OR data LIKE '%".$stringBusca."%' OR noticia LIKE '%".$stringBusca."%' AND ativado = 1 AND excluido = 0"); Nele eu tenho dois campos, ativado e excluido, que server para gerenciar os dados, onde, eu apenas "SETO" valores como 1(= a true) e 0(= a false) para os mesmos.... Mas aqui ele não está aceitando a minha exigencia. Tenho na tabela noticia, 6 itens. Todos eles estão com o campo ativado =1 e excluido =0, MENOS o ultimo que tem esse dados trocado. Porém quando eu executo o query acima, ele sempre me retorna TODOS os dados de minha tabela... Executei a query no phpmyadmin para ver se naum era problema no php... mas ELE também me retornou todos os dados da tabela.. » Tem algo de errado na query que mostrei ??? » Como ajeito isso?? Compartilhar este post Link para o post Compartilhar em outros sites
novato_PHP 0 Denunciar post Postado Fevereiro 20, 2009 $sqlNoticia = mysql_query("SELECT * FROM noticias WHERE titulo LIKE '%".$stringBusca."%' AND ativado = 1 AND excluido = 0 OR data LIKE '%".$stringBusca."%' AND ativado = 1 AND excluido = 0 OR noticia LIKE '%".$stringBusca."%' AND ativado = 1 AND excluido = 0"); Tenta este aí... Compartilhar este post Link para o post Compartilhar em outros sites
P3rukao 0 Denunciar post Postado Fevereiro 20, 2009 Yeap!!!! Agora funcionou certinho.... http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Mas por quê que tenho q repetir tanto??? Seria como se a pesquisa fosse isolada.. tipo: Quando eu ponho titulo LIKE '%".$stringBusca."%' AND ativado = 1 AND excluido = 0, seria como se essa consulta fosse isolada das outras??? Como eu não tinha especificado para essas outras consultas, ele sempre ia retornar todos os titulos, de qqr maneira!!! » Acertei a lógica??? Compartilhar este post Link para o post Compartilhar em outros sites
novato_PHP 0 Denunciar post Postado Fevereiro 20, 2009 Num manjo muito de SQL não mais acho que é mais ou menos o seguinte... Este era seu code né... SELECT * FROM noticias WHERE titulo LIKE '%".$stringBusca."%' OR data LIKE '%".$stringBusca."%' OR noticia LIKE '%".$stringBusca."%' AND ativado = 1 AND excluido = 0 Traduzindo: Digamos que a Letra digitada pelo usuario foi "A" SELECIONE tudo da TABELA Noticias ONDE TITULO comece com A OU DATA comece com A ou Noticia Comece com A e noticia seja ativado seja igual a 1 e excluido = 0. Ele leva em conta apenas se a noticia começar com A ai ele vai ver a condição ativado e excluido... Me corrijam se estiver errado é bom que eu aprendo também.... Compartilhar este post Link para o post Compartilhar em outros sites
P3rukao 0 Denunciar post Postado Fevereiro 20, 2009 hehehe... eh isso mesmo... essa sua versão "Traduzida" ficou bem mais clara... Agora dá pra todo mundo intender.. ;) Compartilhar este post Link para o post Compartilhar em outros sites
P3rukao 0 Denunciar post Postado Fevereiro 20, 2009 A busca está funcionando direitinho agora.... só que tá aparecendo uma erro estranho aqui... Alguem sabe o que eh isto aqui:  ???? Isso () apareceu um bocado de vez na página. eu puz todo o codigo das buscas em arquivos separados e chamei-os por includes.... e daí começou com isso... » Qual o problema dos includes nisso... alguem sabe???? Compartilhar este post Link para o post Compartilhar em outros sites
P3rukao 0 Denunciar post Postado Março 1, 2009 Em um exemplo de paginação que eu usei aqui do forum mesmo, usando ajax, eu resolvi o problema desses caracteres estranhos alterando o header para UTF-8, .... mas nas outras páginas de meu site, tem sempre uns includes que retornam esses caracteres ... e mesmo alterando o header como no outro exemplo, ele continua a exibi-los... =/ » O que será q causa esse erro??? » É configuração do php, ou BUG??? Compartilhar este post Link para o post Compartilhar em outros sites