Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cauca

consulta no db - sofrendo para achar o erro

Recommended Posts

Olá pessoal, não é fácil ser estudante mas vamos lááá

 

Quero agradecer a ajuda de todos !

 

quero fazer uma consulta no meu db , peguei a lógica mas esta dando erro ! alguém pode analisar o erro ?

 

-Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in F:\wamp\www\omega\consulta.php on line 35

 

obrigado de coração

Abraços http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Cauca

 

Segue Codigos

 

<?php

 

$searchtype = $_POST['searchtype'];

$searchterm = $_POST['searchterm'];

 

$searchterm= trim($searchterm);

 

if (!$searchtype || !$searchterm )

{

echo 'você não entrou com os dados.clique em home para voltar';

exit;

}

 

$searchtype = addslashes ('$searchtype');

$searchterm = addslashes ('$searchterm');

 

$msg[0] = "Conexão com o banco falhou!";

$msg[1] = "Não foi possível selecionar o banco de dados!";

 

$conexao = mysql_pconnect("localhost","omega","omega") or die($msg[0]);

mysql_select_db("omega",$conexao) or die($msg[1]);

 

$query = "SELECT * FROM cadastro where ".$searchtype." like '%".$searchterm."%'";

$result = mysql_query($query);

 

$num_results = mysql_num_rows($result);

 

echo '<p> Nome da empresa localizada :'.$num_results.'</p>';

 

for ($i=0; $i <$num_results; $i++)

{

$row = mysql_fetch_array ($result);

echo'<p><strong>' .($i+1).'. Nome:';

echo htmlspecialchars (stripslashes($row['nome']));

echo '</strong><br />Endereco:';

echo stripslashes ($row['endereco']);

echo '</strong><br />Cidade:';

echo stripslashes ($row['cidade']);

echo '</p>';

}

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse erro costuma dar quando a query está errado, só estou achando curioso que não esteja dando erro no mysql_query. Em todo caso coloque um or die no mysql_query e peça para mostrar o erro, só pra ver se ele vai passar.

$result = mysql_query($query);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse erro costuma dar quando a query está errado, só estou achando curioso que não esteja dando erro no mysql_query. Em todo caso coloque um or die no mysql_query e peça para mostrar o erro, só pra ver se ele vai passar. $result = mysql_query($query);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse erro costuma dar quando a query está errado, só estou achando curioso que não esteja dando erro no mysql_query. Em todo caso coloque um or die no mysql_query e peça para mostrar o erro, só pra ver se ele vai passar. $result = mysql_query($query);

Testando primeiro se a query foi executado com sucesso:$query = "SELECT * FROM cadastro where ".$searchtype." like '%".$searchterm."%'";$result = mysql_query($query);if ($result){ $num_results = mysql_num_rows($result); echo '<p> Nome da empresa localizada :'.$num_results.'</p>';} else { die ('Erro ao execultar query: ' . mysql_error ());}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse erro costuma dar quando a query está errado, só estou achando curioso que não esteja dando erro no mysql_query. Em todo caso coloque um or die no mysql_query e peça para mostrar o erro, só pra ver se ele vai passar. $result = mysql_query($query);

Testando primeiro se a query foi executado com sucesso:

 

$query = "SELECT * FROM cadastro where ".$searchtype." like '%".$searchterm."%'";

$result = mysql_query($query);

 

if ($result){

$num_results = mysql_num_rows($result);

echo '<p> Nome da empresa localizada :'.$num_results.'</p>';

} else {

die ('Erro ao execultar query: ' . mysql_error ());

}

 

 

Obrigado pessoal pela ajuda !

 

O erro que deu ao executar o script acima foi este :

 

Erro ao execultar query: Unknown column '$searchtype' in 'where clause'

 

Alguma idéia ?

 

Obrigado

 

Abraços http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Cauca

Compartilhar este post


Link para o post
Compartilhar em outros sites

TIRE AS APAS DUPLAS DEIXANDOI ASSIM:

 

 

$query = "SELECT * FROM cadastro WHERE $searchtype LIKE %$searchterm% ";

$result = mysql_query($query);

Compartilhar este post


Link para o post
Compartilhar em outros sites

TIRE AS APAS DUPLAS DEIXANDOI ASSIM:

 

 

$query = "SELECT * FROM cadastro WHERE $searchtype LIKE %$searchterm% ";

$result = mysql_query($query);

 

Correto !

 

Ou então fazes da maneira direta que é melhor:

 

PHP
$query =mysql_query("SELECT * FROM cadastro WHERE $searchtype LIKE %$searchterm% ")or die("Erro na consulta" .mysql_error());

 

Abraço ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

TIRE AS APAS DUPLAS DEIXANDOI ASSIM:

 

 

$query = "SELECT * FROM cadastro WHERE $searchtype LIKE %$searchterm% ";

$result = mysql_query($query);

 

Correto !

 

Ou então fazes da maneira direta que é melhor:

 

PHP
$query =mysql_query("SELECT * FROM cadastro WHERE $searchtype LIKE %$searchterm% ")or die("Erro na consulta" .mysql_error());

 

Abraço ;)

 

 

Valeu amigos ,

 

tive que colocar em astas simples :

 

$query = ("SELECT * FROM cadastro where '$searchtype' like '%$searchterm%' ") or die ("Erro na consulta" .mysql_error());

 

mas outro problema agora

 

ele só me passa o valor 0 como resposta , como se não achasse nenhum !

 

o que pode ser desta vez ?

 

Abraços http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Paulo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Substitua uma parte do teu código que corresponde as linhas abaixo:

 

PHP
if (!$searchtype || !$searchterm )

{

echo "você não entrou com os dados. Clique em home para voltarn<script>history.back()</script>";

exit;

}

 

$searchtype = addslashes ('$searchtype');

$searchterm = addslashes ('$searchterm');

 

$msg[0] = "Conexão com o banco falhou!";

$msg[1] = "Não foi possível selecionar o banco de dados!";

 

$conexao = mysql_pconnect("localhost","omega","omega") or die($msg[0]);

mysql_select_db("omega",$conexao) or die($msg[1]);

 

$query = mysql_query("SELECT * FROM cadastro where '$searchtype' like '%$searchterm%'";

 

 

$num_results = mysql_num_rows($query);

 

echo "<p> Nome da empresa localizada : "$num_results"</p>";

 

 

Outra coisa, não seria melhor tu listar todos os nomes das empresas que começam com "tal" letra ?

 

se quiser fazer me fala, que irei te dar um explicação, pois muitos não acertam fazer porque se embola na parte do LIKE.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Substitua uma parte do teu código que corresponde as linhas abaixo:

 

PHP
if (!$searchtype || !$searchterm )

{

echo "você não entrou com os dados. Clique em home para voltarn<script>history.back()</script>";

exit;

}

 

$searchtype = addslashes ('$searchtype');

$searchterm = addslashes ('$searchterm');

 

$msg[0] = "Conexão com o banco falhou!";

$msg[1] = "Não foi possível selecionar o banco de dados!";

 

$conexao = mysql_pconnect("localhost","omega","omega") or die($msg[0]);

mysql_select_db("omega",$conexao) or die($msg[1]);

 

$query = mysql_query("SELECT * FROM cadastro where '$searchtype' like '%$searchterm%'";

 

 

$num_results = mysql_num_rows($query);

 

echo "<p> Nome da empresa localizada : "$num_results"</p>";

 

 

Outra coisa, não seria melhor tu listar todos os nomes das empresas que começam com "tal" letra ?

 

se quiser fazer me fala, que irei te dar um explicação, pois muitos não acertam fazer porque se embola na parte do LIKE.

Obrigado pela ajuda irmão !

 

com este codigo

 

<?php

 

$searchtype = $_POST['searchtype'];

$searchterm = $_POST['searchterm'];

 

$searchterm= trim($searchterm);

if (!$searchtype || !$searchterm )

{

echo "você não entrou com os dados. Clique em home para voltar\n<script>history.back()</script>";

exit;

}

 

$searchtype = addslashes ('$searchtype');

$searchterm = addslashes ('$searchterm');

 

$msg[0] = "Conexão com o banco falhou!";

$msg[1] = "Não foi possível selecionar o banco de dados!";

 

$conexao = mysql_pconnect("localhost","omega","omega") or die($msg[0]);

mysql_select_db("omega",$conexao) or die($msg[1]);

 

$query = mysql_query("SELECT * FROM cadastro where '$searchtype' like '%$searchterm%'");

 

 

$num_results = mysql_num_rows($query);

 

echo "<p> Nome da empresa localizada : \"$num_results\"</p>";

 

echo '<p> Nome da empresa localizada :'.$num_results.'</p>';

 

 

 

for ($i=0; $i <$num_results; $i++)

{

$row = mysql_fetch_array ($result);

echo'<p><strong>' .($i+1).'. Nome:';

echo htmlspecialchars (stripslashes($row['nome']));

echo '</strong><br />Endereco:';

echo stripslashes ($row['endereco']);

echo '</strong><br />Cidade:';

echo stripslashes ($row['cidade']);

echo '</p>';

}

 

?>

 

 

o resultado foi este

 

Nome da empresa localizada : "0"

 

Nome da empresa localizada :0

 

 

Abraços http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Cauca

Compartilhar este post


Link para o post
Compartilhar em outros sites

PHP
$contar_busca=substr($searchterm, 0,2);

 

$query = mysql_query("SELECT * FROM cadastro where '$searchtype' like '$contar_busca%'";

 

 

$num_results = mysql_num_rows($query);

 

echo "<p> Nome da empresa localizada : "$num_results"</p>";

 

Tenta ai novamente, caso não ocorra tudo bem, entr em contato comigo por MP ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

PHP
$contar_busca=substr($searchterm, 0,2);

 

$query = mysql_query("SELECT * FROM cadastro where '$searchtype' like '$contar_busca%'";

 

 

$num_results = mysql_num_rows($query);

 

echo "<p> Nome da empresa localizada : "$num_results"</p>";

 

Tenta ai novamente, caso não ocorra tudo bem, entr em contato comigo por MP ;)

 

Obrigado pela força

 

Erro de syntax agora :

 

Parse error: syntax error, unexpected ';' in F:\wamp\www\omega\consulta.php on line 34

Compartilhar este post


Link para o post
Compartilhar em outros sites

echo "<p> Nome da empresa localizada : "$num_results"</p>";

Falta o ponto (.) antes e depois da variável, para concatenação da string com a variável. Assim:

 

echo "<p> Nome da empresa localizada : ".$num_results."</p>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

echo "<p> Nome da empresa localizada : "$num_results"</p>";

Falta o ponto (.) antes e depois da variável, para concatenação da string com a variável. Assim:

 

echo "<p> Nome da empresa localizada : ".$num_results."</p>";

 

Isso Bruno Obrigado ,

 

mas agora sim - este código está cada vez mais loco :

 

Olha o erro que deu agora

 

queria saber aonde esta cetado a variavel $result ?

 

segue o codigo e o erro :

 

Abraço http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Cauca

 

 

<?php

 

$searchtype = $_POST['searchtype'];

$searchterm = $_POST['searchterm'];

 

$searchterm= trim($searchterm);

if (!$searchtype || !$searchterm )

{

echo "você não entrou com os dados. Clique em home para voltar\n<script>history.back()</script>";

exit;

}

 

$searchtype = addslashes ('$searchtype');

$searchterm = addslashes ('$searchterm');

 

$msg[0] = "Conexão com o banco falhou!";

$msg[1] = "Não foi possível selecionar o banco de dados!";

 

$conexao = mysql_pconnect("localhost","omega","omega") or die($msg[0]);

mysql_select_db("omega",$conexao) or die($msg[1]);

 

$contar_busca=substr($searchterm, 0,2);

 

$query = mysql_query("SELECT * FROM cadastro where '$searchtype' like '$contar_busca%'");

 

 

$num_results = mysql_num_rows($query);

 

echo "<p> Nome da empresa localizada : ".$num_results."</p>";

 

 

for ($i=0; $i <$num_results; $i++)

{

$row = mysql_fetch_array ($result);

echo'<p><strong>' .($i+1).'. Nome:';

echo htmlspecialchars (stripslashes($row['nome']));

echo '</strong><br />Endereco:';

echo stripslashes ($row['endereco']);

echo '</strong><br />Cidade:';

echo stripslashes ($row['cidade']);

echo '</p>';

}

 

?>

 

 

Resultado obtido

Nome da empresa localizada : 6

 

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in F:\wamp\www\omega\consulta.php on line 44

 

1. Nome:

Endereco:

Cidade:

 

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in F:\wamp\www\omega\consulta.php on line 44

 

2. Nome:

Endereco:

Cidade:

 

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in F:\wamp\www\omega\consulta.php on line 44

 

3. Nome:

Endereco:

Cidade:

 

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in F:\wamp\www\omega\consulta.php on line 44

 

4. Nome:

Endereco:

Cidade:

 

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in F:\wamp\www\omega\consulta.php on line 44

 

5. Nome:

Endereco:

Cidade:

 

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in F:\wamp\www\omega\consulta.php on line 44

 

6. Nome:

Endereco:

Cidade:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que vi, a variável $result não existe. Creio que queiras usar a variável $query naquele local, tente fazer isso.

Obrigado amigo

 

se eu usar a $query ele me da o resultado de todas as colunas e tabelas :

como no exemplo abaixo , e anula a consulta !

 

Resultado obtido

Nome da empresa localizada : 6

 

Abraços http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Cauca

 

 

 

1. Nome:paulo

Endereco:major

Cidade:Curitiba

 

2. Nome:roberto

Endereco:fran硼/strong>

Cidade:Curitiba

 

3. Nome:marcelo uaska

Endereco:gomes

Cidade:Curitiba

 

4. Nome:Marcos

Endereco:rua alcides

Cidade:Fazenda Rio Grande

 

5. Nome:Patricia

Endereco:emilio prhomann

Cidade:S㯠Mateus do sul

 

6. Nome:Rosemar

Endereco:rodolfo wolff do ama

Cidade:Maringa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como no livro , coloquei o result assim :

 

 

 

$contar_busca=substr($searchterm, 0,2);

 

$query = mysql_query("SELECT * FROM cadastro where '$searchtype' like '$contar_busca%'");

 

$result = mysql_query($query);

 

$num_results = mysql_num_rows($result);

 

echo "<p> Nome da empresa localizada : ".$num_results."</p>";

 

 

for ($i=0; $i <$num_results; $i++)

{

$row = mysql_fetch_array ($result);

echo'<p><strong>' .($i+1).'. Nome:';

echo htmlspecialchars (stripslashes($row['nome']));

echo '</strong><br />Endereco:';

echo stripslashes ($row['endereco']);

echo '</strong><br />Cidade:';

echo stripslashes ($row['cidade']);

echo '</p>';

}

 

 

mas deu erro de syntax:

 

 

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in F:\wamp\www\omega\consulta.php on line 38

 

Nome da empresa localizada :

 

 

 

Abraços http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Cauca

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu erro pois você está utilizando duas vezes o mysql_query. Não pode fazer isso.

 

Deixe, então, simplesmente dessa forma:

$result = mysql_query("SELECT * FROM cadastro where '$searchtype' like '$contar_busca%'");

 

$num_results = mysql_num_rows($result);

Assim, apague a linha que contém a variável $query;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eita... errei na hora que te passei o script amigo, perdão ai... !

 

Caso não consiga arrumar com o pessoal que ta te ajudando, me manda a MP com os códigos que irei trabalhar nesse script pra tu, abração.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu erro pois você está utilizando duas vezes o mysql_query. Não pode fazer isso.

 

Deixe, então, simplesmente dessa forma:

$result = mysql_query("SELECT * FROM cadastro where '$searchtype' like '$contar_busca%'");

 

$num_results = mysql_num_rows($result);

Assim, apague a linha que contém a variável $query;

 

Bruno , Alterei o codigo e ficou da seguinte forma :

 

- Mas qundo eu peço uma consulta agora , ele aparece todos os dados de todo mundo (não está filtrando a consulta )

 

Obrigado

 

Abraços http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Cauca

 

<?php

 

$searchtype = $_POST['searchtype'];

$searchterm = $_POST['searchterm'];

 

$searchterm= trim($searchterm);

if (!$searchtype || !$searchterm )

{

echo "você não entrou com os dados. Clique em home para voltar\n<script>history.back()</script>";

exit;

}

 

$searchtype = addslashes ('$searchtype');

$searchterm = addslashes ('$searchterm');

 

$msg[0] = "Conexão com o banco falhou!";

$msg[1] = "Não foi possível selecionar o banco de dados!";

 

$conexao = mysql_pconnect("localhost","omega","omega") or die($msg[0]);

mysql_select_db("omega",$conexao) or die($msg[1]);

 

$contar_busca=substr($searchterm, 0,2);

 

$result = mysql_query("SELECT * FROM cadastro where '$searchtype' like '$contar_busca%'");

 

$num_results = mysql_num_rows($result);

 

echo "<p> Nome da empresa localizada : ".$num_results."</p>";

 

 

for ($i=0; $i <$num_results; $i++)

{

$row = mysql_fetch_array ($result);

echo'<p><strong>' .($i+1).'. Nome:';

echo htmlspecialchars (stripslashes($row['nome']));

echo '</strong><br />Endereco:';

echo stripslashes ($row['endereco']);

echo '</strong><br />Cidade:';

echo stripslashes ($row['cidade']);

echo '</p>';

}

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.