(!_Odisséa_!) Postado Outubro 21, 2006 Denunciar Share Postado Outubro 21, 2006 Bom dia. Estou fazendo uma página de busca em um BD MySQL. E fui formando um codigo, mas como fui fazendo lendo textos do forum e de outros lugares, não estou sabendo resolver o problema.o codigo é esse: <head> <title>::: Busca :::</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <form name="form1" id="form1" method="get" action=""> Pesquisa: <input type="text" name="pesq" id="pesq"/> <input type="submit" name="Submit" value="Submit" /> </form> <? if ($_GET['Submit']) { $login="name"; $senha="xxxx"; $host="host"; mysql_connect($host,$login,$senha); mysql_select_db ("banco"); if ($_GET['pesq'] !="") { $pesquisa = "pesq=\"".$_GET['pesq']."\""; } else { $pesquisa = "pesq<>\"94477692\""; } $query = "SELECT * FROM n_ori WHERE".$pesquisa; $resultado = mysql_query ($query); ?> <br /> <br /> <table width="95%" border="1" cellpadding="1" cellspacing="0" bordercolor="#990099"> <tr> <td colspan="3">Resultado da Busca:</td> </tr> <tr> <td>Numero Fabricante</td> <td>Numero Original</td> <td>Aplicação</td> </tr> <? while ($ok=mysql_fetch_object($resultado)){ $URL = "view.php?id=".$ok->n_eng; ?> <tr> <td><?=$ok->n_eng?></td> <td><?=$ok->n_ori?></td> <td><a href=<?=$URL?>>Amplia</a></td> </tr> <? } ?> </table> <? } ?> </body> </html>Só que toda vez que mando rodar ele retorna um erro na linha que esta o WHILE.O erro que aparece é o seguinte:Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /webpoint/engrecon/busca/busca.php on line 47alguém poderia me ajudar, por favor?Muito obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Outubro 22, 2006 Denunciar Share Postado Outubro 22, 2006 Sua query não está incorreta, não? Experimente mostrá-la na tela e veja se ela está bem formada (acho que falta um espaço entre o WHERE e o que é concatenado).Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 (!_Odisséa_!) Postado Outubro 22, 2006 Autor Denunciar Share Postado Outubro 22, 2006 Cara, eu tentei dar o espaço, mas não não consegui.Tentei fazer alguns testes, mas o que parece é que "WHILE" não funciona quan eu tento colocar a variavel $pesquisa, junto a linha onde esta o SELECT.você não tem um código mais facil ou que já estaja funcionando, pra me ajudar?valeu cara. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Outubro 22, 2006 Denunciar Share Postado Outubro 22, 2006 Então passa ele assim:$resultado = mysql_query ("SELECT * FROM n_ori WHERE $pesquisa");Seria interessante você passar a modelagem do seu BD para entender como deveria funcionar o seu script, porque eu acho que o select correto para você seria algo do jeito:...SELECT * FROM n_ori WHERE coluna LIKE $pesquisa...Ps.: Note que coluna é o lugar onde estará alocada a query ($pesquisa), isso possibilitará o mysql_fetch_object funcinar. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 (!_Odisséa_!) Postado Outubro 23, 2006 Autor Denunciar Share Postado Outubro 23, 2006 ESerra, valeu pela dica, vou ver se funciona.QUando você pede pra eu mostrar a modelagem do BD, você esta pedindo pra mostrar todos os campos, que tenho? tipo as colunas? POr exemplo: Imagem / n_eng / n_ori / descr / ..... assim.Isso que eu acabei de escrever acima, são nomes de colunas do BD.Valeu.----Cara não consegui, dá o mesmo erro e na linha do while.você não em nenhum código pronto?valeu. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Outubro 23, 2006 Denunciar Share Postado Outubro 23, 2006 O que você quer com esse script?Pelo que eu entendi você quer só pegar os dados de uma determinada linha, linha essa que será determinada pelo termo pego através do método GET, seria isso?Se for isso é bem simples, mas como o seu problema está na sintaxe da pesquisa tenta o seguinte:...SELECT * FROM tabela WHERE coluna LIKE $pesquisa... isso deve resolver, em anexo vai um código que funciona (você vai ter que montar os dados na tabela, mas isso é um detalhe):<? $sql = mysql_query("SELECT * FROM $bd WHERE $coluna LIKE $pesq"); while($l = mysql_fetch_array($sql)) { $categoria = $l["categoria"]; $url = $l["url"]; $id = $l["id"]; } ?>Note o seguinte, $categoria, $url e $id são colunas de uma tabela minha, você deve mudar para as colunas que você tiver (e forem do seu interesse serem pegas no array), depois de pegar elas bastar voce dar echo $id, echo $url, etc, dentro da sua tabela para os resultados aparecerem... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 (!_Odisséa_!) Postado Outubro 25, 2006 Autor Denunciar Share Postado Outubro 25, 2006 oi cara, então. To começando achar que é algum erro do servidor ou do banco não é possivel.Toda hora da erro nesse while. coloquei o novo codigo que você me passou:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>::: Busca :::</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <form name="form1" id="form1" method="get" action=""> Pesquisa: <input type="text" name="pesq" id="pesq"/> <input type="submit" name="Submit" value="Submit" /> </form> <? if ($_GET['Submit']) { $login="login"; $senha="senha"; $host="host"; $bd="produto"; $coluna="n_ori"; mysql_connect($host,$login,$senha); mysql_select_db ("banco"); if ($_GET['pesq'] !="") { $pesquisa = "pesq=\"".$_GET['pesq']."\""; } else { $pesquisa = "pesq<>\"94477692\""; } $sql = mysql_query("SELECT * FROM '$bd' WHERE '$coluna' LIKE '$pesquisa'"); /*while($l = mysql_fetch_array($sql)) { $categoria = $l["n_eng"]; $url = $l["n_ori"]; $id = $l["descr"]; }*/ echo "$pesquisa"; } ?> </body> </html>O que eu quero com o codigo é o seguinte, eu queria realizar uma busca em um banco de dados em uma determinada coluna, entendeu? Tem um codigo mais facil que esse?Valeu. e desculpe a demora pra responder desta vez. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Outubro 25, 2006 Denunciar Share Postado Outubro 25, 2006 Olha fiz um bd de teste aqui, a moldagem foi:CREATE TABLE teste (n_eng INT(10) NOT NULL,n_ori VARCHAR(30) NOT NULL,descr VARCHAR(255) NOT NULL,PRIMARY KEY (n_eng));Fiz umas alterações no seu script... lembre-se que variável (coisas que começam com $ não podem ir entre aspas simples '')<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>::: Busca :::</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <form name="form1" id="form1" method="get" action=""> Pesquisa: <input type="text" name="pesq" id="pesq"/> <input type="submit" name="Submit" value="Submit" /> </form> <? if ($_GET['Submit']) { $login="login"; $senha="senha"; $host="localhost"; $bd="teste"; $coluna="n_eng"; // LEMBRE-SE É DAQUI QUE IRÁ SAIR A CONSULTA SE A SUA COLUNA FOR OUTRA ALTERE!!!! mysql_connect($host,$login,$senha); mysql_select_db (""); // ADICIONE AQUI O BD if ($_GET['pesq'] !="") { $pesquisa = "".$_GET['pesq'].""; } else { $pesquisa = "94477692"; } $sql = mysql_query("SELECT * FROM $bd WHERE $coluna LIKE $pesquisa"); while($l = mysql_fetch_array($sql)) { $categoria = $l["n_eng"]; $url = $l["n_ori"]; $id = $l["descr"]; } echo "$categoria <BR>"; echo "$url <BR>"; echo "$id <BR>"; } ?> </body> </html>Testei e funfou... qualquer coisa pode olhar ai » http://www.edgarserra.com/teste/con_bd_sb.php é o script em ação, obviamente só cadastrei uma linha no bd, ela pode ser chamada pelo número 456405 , qualquer outra coisa que você digitar não vai retornar nada na tela pois não será encontrado no banco de dados... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 (!_Odisséa_!) Postado Outubro 25, 2006 Autor Denunciar Share Postado Outubro 25, 2006 Meu.... deve ser problema do servidor, sei lá..... porque eu montei o mesmo bnco de dados que o seu, e coloquei o mesmo codigo que você me passou e continua dando o erro na porcaria desse WHILE, será que pode ser configuração do servidor? existe uma busca sem esse while?valeu, mesmo pela paciencia e pela atenção.da uma olhada: www.engrecon.com.br/busca/red.php os valore podem ser 1 ou 2. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Outubro 25, 2006 Denunciar Share Postado Outubro 25, 2006 Eu acho que você tá errando na hora de configurar no cpanel... lembre-se que você deve criar o banco de dados e relacionar um usuário a esse banco de dados... você já testou pra ver se em primero lugar a conexão com o banco de dados está sendo feita?EDIT!!!Tava testando o sistema de permissões do MySQL... e adivinha o que aconteceu quando eu removi a permissão do usuário acessar o BD...Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/*******/public_html/teste/con_bd_sb.php on line 35 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 (!_Odisséa_!) Postado Outubro 26, 2006 Autor Denunciar Share Postado Outubro 26, 2006 Haa,saquei! Então quer dizer que pra mim, esse codig, não vale, não é mesmo? porque quero fazer justamente uma busca para usuários do site, ou seja qualquer pessoa que entre possa buscar, tipo aqui no forum, saca?Vixi, vou procurar outro código, então?Ou da pra auterar esse meu?Valeu cara. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Outubro 26, 2006 Denunciar Share Postado Outubro 26, 2006 Nada a ver... o usuário que você declarará no script apenas serve para acesso ao banco de dados, o que você vai procurar depois de acessar o banco de dados não tem a menor importância... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 (!_Odisséa_!) Postado Outubro 27, 2006 Autor Denunciar Share Postado Outubro 27, 2006 olha eu fiz aquele teste de conexão, sabe?da uma olhada numa parte do código $link = mysql_connect($host,$login,$senha); if (!$link) { die('Não foi possível conectar: ' . mysql_error()); } echo 'Conexão bem sucedida'; $db_selected = mysql_select_db('engrecon', $link); if (!$db_selected) { die ('Can\'t use foo : ' . mysql_error()); } echo 'Conexão de banco bem sucedida';e deu tudo certo. Esta conectando direitinho.Agora não sei, esse usuário que você esta falando? tem amis algum teste que eu possa saber se esse usuário esta conectado? Ou o usuário é aquele Login e senha que coloco antes de entrar no banco?valeu. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Outubro 27, 2006 Denunciar Share Postado Outubro 27, 2006 Sim, o usuário a que me referi é apenas o login que você usa no código php para poder acessar o BD.Se o teste não resultou em erro está tudo certo (não testei o seu script de conexão). Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 (!_Odisséa_!) Postado Outubro 27, 2006 Autor Denunciar Share Postado Outubro 27, 2006 Então cara acho que deve ser algum detalhisinho, mas vou tentar contornar o erro.Tem alguma função que eu possa substituir o WHILE? Ou algum lugar que você conheça que tenha um sistema de busca onde eu possa me basear?valeu. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Outubro 27, 2006 Denunciar Share Postado Outubro 27, 2006 Duvido que trocar o while vá fazer o script funcionar, mesmo porque ele funciona comigo, o while é o modo mais simples de fazer loop, logo deveria funcionar em qualquer server de php... você não tem como conseguir outro server pra testar? Nem que você instale o php/mysql no seu pc... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
(!_Odisséa_!)
Bom dia. Estou fazendo uma página de busca em um BD MySQL. E fui formando um codigo, mas como fui fazendo lendo textos do forum e de outros lugares, não estou sabendo resolver o problema.
o codigo é esse:
Só que toda vez que mando rodar ele retorna um erro na linha que esta o WHILE.
O erro que aparece é o seguinte:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /webpoint/engrecon/busca/busca.php on line 47
alguém poderia me ajudar, por favor?
Muito obrigado.
Link para o comentário
Compartilhar em outros sites
15 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.