Ir para conteúdo

POWERED BY:

Arquivado

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

InTroX

[Resolvido] Erro Warning: mysql_fetch_array():

Recommended Posts

Bom, o código de resultado estava funcionando numa boa, até eu tentar acoplar a ele o código para devida paginação dos resultados e ficou assim

 

<form name="form_procura" action="" method="post">
 <p align="left">Procurar por nome:  
   <input name="nome" type="text">
   <input value="Procurar" class="alt2" type="submit" name="form_procura">
 </p>
</form>

<?
include "../central/central/config.php";
if($_POST['form_procura']){
$nome = $_POST['nome'];
}

// Pegar a página atual por GET
$p = $_GET["p"];
// Verifica se a variável tá declarada, senão deixa na primeira página como padrão
if(isset($p)) {
$p = $p;
} else {
$p = 1;
}
// Defina aqui a quantidade máxima de registros por página.
$qnt = 8;
// O sistema calcula o início da seleção calculando: 
// (página atual * quantidade por página) - quantidade por página
$inicio = ($p*$qnt) - $qnt;
// Seleciona no banco de dados com o LIMIT indicado pelos números acima
//$sql_select = "SELECT * FROM top10 ORDER BY id DESC LIMIT $inicio, $qnt";


//Inicia o código para procura\\
$procura = "$nome";

$query = mysql_query("SELECT nome FROM usuarios_clube WHERE nome LIKE '%$procura%' DESC LIMIT $inicio, $qnt");

while (($array=mysql_fetch_array($query))!=NULL)
{
 $msg_final .= $array[0]."<br>";
}


if (@mysql_num_rows($query)==0 || @mysql_num_rows($query)=="")
{
 echo "Não foram encontrados nenhum registro!";  
}
else
{
$xxx = @mysql_num_rows($query);
echo "Total de registros encontrados = ".$xxx;
echo "<br>";
echo $msg_final;




//continuaçao do código de páginação
echo "";
}
// Depois que selecionou todos os nome, pula uma linha para exibir os links(próxima, última...)


//tentando deixar o lance da paginação sempre embaxo das imgs =) BreNnØ
echo "<center>";
// Faz uma nova seleção no banco de dados, desta vez sem LIMIT, 
// para pegarmos o número total de registros
$sql_select_all = "SELECT * FROM usuarios_clube";
// Executa o query da seleção acimas
$sql_query_all = mysql_query($sql_select_all);
// Gera uma variável com o número total de registros no banco de dados
$total_registros = mysql_num_rows($sql_query_all);
// Gera outra variável, desta vez com o número de páginas que será precisa. 
// O comando ceil() arredonda 'para cima' o valor
$pags = ceil($total_registros/$qnt);
// Número máximos de botões de paginação
$max_links = 13;
// Exibe o primeiro link 'primeira página', que não entra na contagem acima(13)
echo "<a href='?pagina=procura' target='_self'>Primeira Página</a>";
echo " | ";
// Cria um for() para exibir os 13 links antes da página atual
for($i = $p-$max_links; $i <= $p-1; $i++) {
// Se o número da página for menor ou igual a zero, não faz nada
// (afinal, não existe página 0, -1, -2..)
if($i <=0) {
//faz nada
// Se estiver tudo OK, cria o link para outra página
} else {
echo "<a href='?pagina=procura&p=".$i."' target='_self'>".$i."</a> ";
}
}
// Exibe a página atual, sem link, apenas o número
echo $p." ";
// Cria outro for(), desta vez para exibir 13 links após a página atual
for($i = $p+1; $i <= $p+$max_links; $i++) {
// Verifica se a página atual é maior do que a última página. Se for, não faz nada.
if($i > $pags)
{
//faz nada
}
// Se tiver tudo Ok gera os links.
else
{
echo "<a href='?pagina=procura&p=".$i."' target='_self'>".$i."</a> ";
}
}
// Exibe o link "última página"
echo "| ";
echo "<a href='?pagina=procura&p=".$pags."' target='_self'>Ultima Página</a></br></br></td><tr>";
?>
</center>

 

bom quando vou abrir a página na web ele ta apresentando o seguinte erro:

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/radiolol/public_html/novosite/procura.php on line 36
Não foram encontrados nenhum registro!

 

 

a linha 36:

while (($array=mysql_fetch_array($query))!=NULL)

 

 

Poderia corrigir esse código para mim? preciso muito dele! agradeço desde já!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui...

 

while (($array=mysql_fetch_array($query))[color="#FF0000"]!=NULL[/color])

 

Tenta tirar essa marcação em vermelho

 

ficando assim

 

while ($array = mysql_fetch_assoc($query))

 

flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui...

 

while (($array=mysql_fetch_array($query))[color="#FF0000"]!=NULL[/color])

 

Tenta tirar essa marcação em vermelho

 

ficando assim

 

while ($array = mysql_fetch_assoc($query))

 

flw

 

não tem isso no código que passei... :S

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, Seu Codigo Está Totalmente Porco Por Assim Dizer B)

Sem Contar o Fato De Você Estar Usando Funçoes Nativas do PHP, Que é o mysql_

No Qual essas Funçoes Não Vão Mais Existir no PHP6 :P ,

Segundo, mysql_num_rows, te retorna integer , se não existir contagem de linhas

o Total é zero, então seu if apos a primeira condição nunca vai passar por ela

if (@mysql_num_rows($query)==0 || @mysql_num_rows($query)=="")

 

Pra Ser Mais Espesifico

|| @mysql_num_rows($query)==""

 

Segundo Seu While Você esta Falando Que é Diferente DE NULL

O While Entre pararenteses Já e uma Condição, é se Não Retornar NULL ?

Então seu While Está errado, Troque de

while (($array=mysql_fetch_array($query))!=NULL)

Para

while($array = mysql_fetch_array( $query ))

 

Terceiro, Troque Sua Query, É Sempre Acrescente

or die( mysql_error() );

 

Ficando Assim

$query = mysql_query(" SELECT `nome` FROM `usuarios_clube` WHERE `nome` LIKE '%".$nome."%' DESC LIMIT $inicio, $qnt" ) or die ( mysql_error() );

 

Outra Dica Importante, é sempre Usar Apóstrofo

Em Nome de Tabelas é Campos

 

Outra Coisa Inutil, é Você Criar Outra Variavel Para Armazenar Outra Variavel Como:

//Inicia o código para procura\\
$procura = "$nome";

Coloca Direto $nome na query e pronto

 

Faça as Devidas Alterações, E Poste o Resultado, Não Olhei o Codigo Inteiro

Apenas Uma Parte Proximo a Linha de Erro Indicada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, Seu Codigo Está Totalmente Porco Por Assim Dizer B)

Sem Contar o Fato De Você Estar Usando Funçoes Nativas do PHP, Que é o mysql_

No Qual essas Funçoes Não Vão Mais Existir no PHP6 :P ,

Segundo, mysql_num_rows, te retorna integer , se não existir contagem de linhas

o Total é zero, então seu if apos a primeira condição nunca vai passar por ela

if (@mysql_num_rows($query)==0 || @mysql_num_rows($query)=="")

 

Pra Ser Mais Espesifico

|| @mysql_num_rows($query)==""

 

Segundo Seu While Você esta Falando Que é Diferente DE NULL

O While Entre pararenteses Já e uma Condição, é se Não Retornar NULL ?

Então seu While Está errado, Troque de

while (($array=mysql_fetch_array($query))!=NULL)

Para

while($array = mysql_fetch_array( $query ))

 

Terceiro, Troque Sua Query, É Sempre Acrescente

or die( mysql_error() );

 

Ficando Assim

$query = mysql_query(" SELECT `nome` FROM `usuarios_clube` WHERE `nome` LIKE '%".$nome."%' DESC LIMIT $inicio, $qnt" ) or die ( mysql_error() );

 

Outra Dica Importante, é sempre Usar Apóstrofo

Em Nome de Tabelas é Campos

 

Outra Coisa Inutil, é Você Criar Outra Variavel Para Armazenar Outra Variavel Como:

//Inicia o código para procura\\
$procura = "$nome";

Coloca Direto $nome na query e pronto

 

Faça as Devidas Alterações, E Poste o Resultado, Não Olhei o Codigo Inteiro

Apenas Uma Parte Proximo a Linha de Erro Indicada

 

 

Desulpe-me se o código está meio porco, é eu também achei so que evitei mecher para não piorar a situação eheh

O código funcionava pperfeitamente porem eu queria páginar os resultados...

 

fiz as alterações que você pediu e o código ficou assim:

 

<form name="form_procura" action="" method="post">
 <p align="left">Procurar por nome:  
   <input name="nome" type="text">
   <input value="Procurar" class="alt2" type="submit" name="form_procura">
 </p>
</form>

<?
include "../central/central/config.php";
if($_POST['form_procura']){
$nome = $_POST['nome'];
}

// Pegar a página atual por GET
$p = $_GET["p"];
// Verifica se a variável tá declarada, senão deixa na primeira página como padrão
if(isset($p)) {
$p = $p;
} else {
$p = 1;
}
// Defina aqui a quantidade máxima de registros por página.
$qnt = 8;
// O sistema calcula o início da seleção calculando: 
// (página atual * quantidade por página) - quantidade por página
$inicio = ($p*$qnt) - $qnt;
// Seleciona no banco de dados com o LIMIT indicado pelos números acima
//$sql_select = "SELECT * FROM top10 ORDER BY id DESC LIMIT $inicio, $qnt";

//Inicia o código para procura\\
$procura = "$nome";

$query = mysql_query(" SELECT `nome` FROM `usuarios_clube` WHERE `nome` LIKE '%".$nome."%' DESC LIMIT $inicio, $qnt" ) or die ( mysql_error() );
while($array = mysql_fetch_array( $query ))
{
 $msg_final .= $array[0]."<br>";
}


if (@mysql_num_rows($query)==0 || @mysql_num_rows($query)=="")
{
 echo "Não foram encontrados nenhum registro!";  
}
else
{
$xxx = @mysql_num_rows($query);
echo "Total de registros encontrados = ".$xxx;
echo "<br>";
echo $msg_final;




//continuaçao do código de páginação
echo "";
}
// Depois que selecionou todos os nome, pula uma linha para exibir os links(próxima, última...)


//tentando deixar o lance da paginação sempre embaxo das imgs =) BreNnØ
echo "<center>";
// Faz uma nova seleção no banco de dados, desta vez sem LIMIT, 
// para pegarmos o número total de registros
$sql_select_all = "SELECT * FROM usuarios_clube";
// Executa o query da seleção acimas
$sql_query_all = mysql_query($sql_select_all);
// Gera uma variável com o número total de registros no banco de dados
$total_registros = mysql_num_rows($sql_query_all);
// Gera outra variável, desta vez com o número de páginas que será precisa. 
// O comando ceil() arredonda 'para cima' o valor
$pags = ceil($total_registros/$qnt);
// Número máximos de botões de paginação
$max_links = 13;
// Exibe o primeiro link 'primeira página', que não entra na contagem acima(13)
echo "<a href='?pagina=procura' target='_self'>Primeira Página</a>";
echo " | ";
// Cria um for() para exibir os 13 links antes da página atual
for($i = $p-$max_links; $i <= $p-1; $i++) {
// Se o número da página for menor ou igual a zero, não faz nada
// (afinal, não existe página 0, -1, -2..)
if($i <=0) {
//faz nada
// Se estiver tudo OK, cria o link para outra página
} else {
echo "<a href='?pagina=procura&p=".$i."' target='_self'>".$i."</a> ";
}
}
// Exibe a página atual, sem link, apenas o número
echo $p." ";
// Cria outro for(), desta vez para exibir 13 links após a página atual
for($i = $p+1; $i <= $p+$max_links; $i++) {
// Verifica se a página atual é maior do que a última página. Se for, não faz nada.
if($i > $pags)
{
//faz nada
}
// Se tiver tudo Ok gera os links.
else
{
echo "<a href='?pagina=procura&p=".$i."' target='_self'>".$i."</a> ";
}
}
// Exibe o link "última página"
echo "| ";
echo "<a href='?pagina=procura&p=".$pags."' target='_self'>Ultima Página</a></br></br></td><tr>";
?>
</center>


 

me retornou o seguinte erro:

 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DESC LIMIT 0, 8' at line 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certamente, Faltou o ORDER BY :ermm:

 

$query = mysql_query(" SELECT `nome` FROM `usuarios_clube` WHERE `nome` LIKE '%".$nome."%' ORDER BY DESC LIMIT $inicio, $qnt" ) or die ( mysql_error() );

 

 

corrigi e deu este erro:

Parse error: syntax error, unexpected T_WHILE in /home/radiolol/public_html/novosite/procura.php on line 34

 

ta sinistro hoje oO

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kara, isso ai e algum ponto e virgula errado .

acho que você que tem que examinar o codigo agora ...

 

:s ok vou tentar aqui. mesmo assim vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver, tinha alguns erros e principalmente na $query aonde tem (ORDER BY) não especificamos com o que ordenar, o código completo estou postando abaixo.

 

Podem usar, porem mantenha os créditos!!!

Obrigado

 

<!-- Desenvolvido por Yuri Leoni Vidal - Data: 23/04/2011 -->
<!-- Apoio Forum Imasters - http://forum.imasters.com.br -->
<!-- Apoio Andrey Knupp - Usuário Forum Imasters -->

<form name="form_procura" action="" method="post">
 <p align="left">Procurar por nome:  
   <input name="nome" type="text">
   <input value="Procurar" class="alt2" type="submit" name="form_procura">
 </p>
</form>

<?
include "../central/central/config.php";
if($_POST['form_procura']){
$nome = $_POST['nome'];
}

// Pegar a página atual por GET
$p = $_GET["p"];
// Verifica se a variável tá declarada, senão deixa na primeira página como padrão
if(isset($p)) {
$p = $p;
} else {
$p = 1;
}
// Defina aqui a quantidade máxima de registros por página.
$qnt = 50;
// O sistema calcula o início da seleção calculando: 
// (página atual * quantidade por página) - quantidade por página
$inicio = ($p*$qnt) - $qnt;
// Seleciona no banco de dados com o LIMIT indicado pelos números acima
//$sql_select = "SELECT * FROM top10 ORDER BY id DESC LIMIT $inicio, $qnt";

//Inicia o código para procura\\
$procura = "$nome";
//Seleciona a DB para contagem total de usuários
$conta = "SELECT * FROM usuarios_clube";
mysql_query ($conta) or die ("Nao foi posivel efetuar a contagem de registros");
$numero_registros = mysql_affected_rows();

//Seleciona da DB para paginação
$query = mysql_query(" SELECT `nome` FROM `usuarios_clube` WHERE `nome` LIKE '%".$nome."%' ORDER BY nome DESC LIMIT $inicio, $qnt" ) or die ( mysql_error() );
while($array = mysql_fetch_array( $query ))
{
 $msg_final .= $array[0]."<br>";   
}
$registros_encontrados = @mysql_num_rows($query);

echo "Total de Usuários Cadastrados = $numero_registros";
echo "Total de Usuários Encontrados = $registros_encontrados";
echo "<br>";
echo $msg_final;




//continuaçao do código de páginação
echo "";

// Depois que selecionou todos os nome, pula uma linha para exibir os links(próxima, última...)


//tentando deixar o lance da paginação sempre embaxo das imgs =) BreNnØ
echo "<center>";
// Faz uma nova seleção no banco de dados, desta vez sem LIMIT, 
// para pegarmos o número total de registros
$sql_select_all = "SELECT * FROM usuarios_clube";
// Executa o query da seleção acimas
$sql_query_all = mysql_query($sql_select_all);
// Gera uma variável com o número total de registros no banco de dados
$total_registros = mysql_num_rows($sql_query_all);
// Gera outra variável, desta vez com o número de páginas que será precisa. 
// O comando ceil() arredonda 'para cima' o valor
$pags = ceil($total_registros/$qnt);
// Número máximos de botões de paginação
$max_links = 13;
// Exibe o primeiro link 'primeira página', que não entra na contagem acima(13)
echo "<a href='?pagina=procura' target='_self'>Primeira Página</a>";
echo " | ";
// Cria um for() para exibir os 13 links antes da página atual
for($i = $p-$max_links; $i <= $p-1; $i++) {
// Se o número da página for menor ou igual a zero, não faz nada
// (afinal, não existe página 0, -1, -2..)
if($i <=0) {
//faz nada
// Se estiver tudo OK, cria o link para outra página
} else {
echo "<a href='?pagina=procura&p=".$i."' target='_self'>".$i."</a> ";
}
}
// Exibe a página atual, sem link, apenas o número
echo $p." ";
// Cria outro for(), desta vez para exibir 13 links após a página atual
for($i = $p+1; $i <= $p+$max_links; $i++) {
// Verifica se a página atual é maior do que a última página. Se for, não faz nada.
if($i > $pags)
{
//faz nada
}
// Se tiver tudo Ok gera os links.
else
{
echo "<a href='?pagina=procura&p=".$i."' target='_self'>".$i."</a> ";
}
}
// Exibe o link "última página"
echo "| ";
echo "<a href='?pagina=procura&p=".$pags."' target='_self'>Ultima Página</a></br></br></td><tr>";
?>
</center>


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.