InTroX 0 Denunciar post Postado Abril 23, 2011 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
MelkorValar 0 Denunciar post Postado Abril 23, 2011 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
InTroX 0 Denunciar post Postado Abril 23, 2011 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
Andrey Knupp Vital 136 Denunciar post Postado Abril 23, 2011 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
InTroX 0 Denunciar post Postado Abril 23, 2011 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
Andrey Knupp Vital 136 Denunciar post Postado Abril 23, 2011 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() ); Compartilhar este post Link para o post Compartilhar em outros sites
InTroX 0 Denunciar post Postado Abril 23, 2011 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
Andrey Knupp Vital 136 Denunciar post Postado Abril 23, 2011 Kara, isso ai e algum ponto e virgula errado . acho que você que tem que examinar o codigo agora ... Compartilhar este post Link para o post Compartilhar em outros sites
InTroX 0 Denunciar post Postado Abril 23, 2011 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
InTroX 0 Denunciar post Postado Abril 23, 2011 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