egbmix 0 Denunciar post Postado Abril 23, 2010 boa tarde á todos Peguei um script de busca na net e adequei de acordo com o meu site, sendo que na hora da busca ele mostra os resultado corretos, sendo que quando é o resultado maior que o número de registros da página que no casa é igual a 10 quando eu clico no botão avançar ele mostra na página seguinte todos os registro no banco de dados o que devo fazer ? abaixo vai o código: conexão com o banco de dados ... $busca = "SELECT * FROM tabela where name like '%".$_POST['busca']."%'"; $total_reg = "10"; // número de registros por página if (!$pagina) { $pc = "1"; } else { $pc = $pagina; } $inicio = $pc - 1; $inicio = $inicio * $total_reg; $limite = mysql_query("$busca LIMIT $inicio,$total_reg"); $todos = mysql_query("$busca"); $tr = mysql_num_rows($todos); // verifica o número total de registros $tp = $tr / $total_reg; // verifica o número total de páginas // vamos criar a visualização while ($linha = mysql_fetch_array($limite)) { consulta while... } // agora vamos criar os botões "Anterior e próximo" $anterior = $pc -1; $proximo = $pc +1; if ($pc>1) { echo " <div = align=\"center\"><a href='?pagina=$anterior'>Anterior</a> "; } if ($pc<$tp) { echo " <a href='?pagina=$proximo'>Próxima </a></div>"; } mysql_close($conn); Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Abril 23, 2010 Mas que erro dá ? Compartilhar este post Link para o post Compartilhar em outros sites
egbmix 0 Denunciar post Postado Abril 23, 2010 Mas que erro dá ? tipo assim ele mostra os resultados corretamente mas quando o resultado ultrapassa o limite de registros na página que no caso é 10 ae quando eu clico no botão avançar ele mostra na página seguinte todos os registros do banco de dados. Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Abril 23, 2010 Tenta fazer isso aqui ao inves disso : $limite = mysql_query("$busca LIMIT $inicio,$total_reg"); ponha: $limite = mysql_query("$busca LIMIT ".$inicio.",".$total_reg.""); Compartilhar este post Link para o post Compartilhar em outros sites
egbmix 0 Denunciar post Postado Abril 23, 2010 Não funcionou continua a mesmo coisa. Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Abril 23, 2010 Ve se isso aqui tambem ajuda : Ao inves: $limite = mysql_query("$busca LIMIT $inicio,$total_reg"); $todos = mysql_query("$busca"); tenta: $limite = mysql_query("$busca LIMIT ".$inicio.",".$total_reg.""); $todos = mysql_query($busca); Compartilhar este post Link para o post Compartilhar em outros sites
egbmix 0 Denunciar post Postado Abril 23, 2010 não funcionou. sinceramente eu não entendo o script parece está correto. Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Abril 23, 2010 $busca = $_POST["busca"]; $busca = "SELECT * FROM tabela where name like '%$busca%'"; e usa o q eu jah tinha escrito :D Compartilhar este post Link para o post Compartilhar em outros sites
egbmix 0 Denunciar post Postado Abril 23, 2010 ficamos na mesma Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Abril 23, 2010 Bom, o erro, aparentemente, pelo menos para mim, está aqui: if (!$pagina) { de onde teria que vir ? hum.. provavelmente de: ?pagina=2... e por ai em diante. Uma coisa que sempre esquecem, é do register_globals, que deve ficar Off olhando aqui: " <a href='?pagina=$proximo'>Próxima </a></div>"; confirma a minha hipótese. Então o ajuste é: trocar: if (!$pagina) { por: $pagina = $_GET['pagina']; if (!$pagina) { :lol: Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Abril 23, 2010 esse aqui é o meu codigo , que estah funcionando direitinho] <?php echo "<div id='meio2'>"; $pesq = $_GET['pesq']; //######### INICIO Paginação $numreg = 10; // Quantos registros por página vai ser mostrado $pg = isset($_GET['pg']) ? (int)$_GET['pg'] : 0; $inicial = $pg * $numreg; //######### FIM dados Paginação $busca2 = mysql_query("Select * from receitas where nome like ('%$pesq%')"); // Faz o Select pegando o registro inicial até a quantidade de registros para página //Sempre cuidar em sempre contatenar as vaiaveis fora das strings $sql = mysql_query("SELECT * FROM receitas where nome like '%$pesq%' LIMIT ".$inicial.", ".$numreg.""); $linhas = mysql_num_rows($busca2); if ($linhas == 0 ) { echo "<div class='h3'>Não foram encontradas receitas com a palavras \" ".$pesq." \"</s>"; } elseif ($linhas == 1 ) { echo "<div class='h3'>Foi encontrada uma recenta!</div>"; } elseif ($linhas > 1) { echo "<div class='h3'>Foram encontradas ".$linhas." receitas</div>"; } echo "</div>"; echo "<br><br>"; // Vai servir só para dar uma alinha de espaço entre a paginação e o conteúdo echo "<br><br>"; echo "$pesq"; while ($aux = mysql_fetch_array($sql)){ echo"<hr>"; $id = $aux["codigo"]; echo "<div class='texto'><strong>Nome : </strong><a href='receitas.php?codigo=".$id."'>".$aux["nome"]."</a><br /></div> "; } include("paginacao.php");// Chama o arquivo que monta a paginação. ex: << anterior 1 2 3 4 5 próximo >> ?> Compartilhar este post Link para o post Compartilhar em outros sites
egbmix 0 Denunciar post Postado Abril 23, 2010 Mudei o if (!$pagina) mas continuou a mesma coisa. Acabei de crer que o erro é na minha hospedagem pois este seu script está dando mesmo erro eu já tinha ele aqui em minha máquina. já troque o if e continuou a mesma coisa Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Abril 23, 2010 Cara, troca: $busca = "SELECT * FROM tabela where name like '%".$_POST['busca']."%'"; $total_reg = "10"; // número de registros por página if (!$pagina) { $pc = "1"; } else { $pc = $pagina; } $inicio = $pc - 1; $inicio = $inicio * $total_reg; $limite = mysql_query(); $todos = mysql_query("$busca"); por: $busca = "SELECT * FROM tabela where name like '%{$_POST['busca']}%'"; $total_reg = 10; $pc = !isset($_GET['pagina']) ? 1: (int)$_GET['pagina']; $inicio = ( $pc-1 )*$total_reg; $sql_limite = "{$busca LIMIT {$inicio}, {$total_reg}"; $limite = mysql_query( $sql_limite )or die( mysql_query() ); /* apenas para debug */ echo $sql_limite,'<br />'; var_dump( $_GET ); /* apenas para debug */ $todos = mysql_query( $busca ); navega pela paginação, e posta por aqui, para que possamos entender oque está acontecendo realmente. Compartilhar este post Link para o post Compartilhar em outros sites
egbmix 0 Denunciar post Postado Abril 23, 2010 PHP Parse error: syntax error, unexpected '?', expecting ',' or ')' na linha: $pc = !isset($_GET['pagina'] ? 1; (int)$_GET['pagina']; Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Abril 23, 2010 $pc = !isset($_GET['pagina']) ? 1 : (int)$_GET['pagina']; Compartilhar este post Link para o post Compartilhar em outros sites
egbmix 0 Denunciar post Postado Abril 23, 2010 $pc = !isset($_GET['pagina']) ? 1 : (int)$_GET['pagina']; É isso mesmo quando eu digitei a linha esqueci de colocar o parenteses. Compartilhar este post Link para o post Compartilhar em outros sites