RamonTav 1 Denunciar post Postado Dezembro 12, 2011 Boa Tarde Galera mais uma vez quero pedir uma ajudinha :) Estou com 2 codigos um é de paginação e o outro é de busca, eu gostaria que meu sistema de busca ficasse com com esta páginação. PÁGINAÇÃO <?php $db = "db"; @mysql_connect("localhost", "usuario", "senha") or trigger_error(mysql_error(),E_USER_ERROR); mysql_select_db($db); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Paginação Avançada com PHP</title> <link rel="stylesheet" type="text/css" href="estilo.css" /> </head> <body> <div class="global-div"> <h1>Paginação Avançada com PHP</h1> <?php $pag = ($_GET['pag']); $pag = filter_var($pag, FILTER_VALIDATE_INT); $inicio = 0; $limite = 1 ; if ($pag!='') { $inicio = $pag - 1; } $busca_total = mysql_query("SELECT COUNT(*) as total FROM artigos"); $total = mysql_fetch_array($busca_total); $total = $total['total']; $busca = mysql_query("SELECT * FROM artigos LIMIT $inicio, $limite"); if (mysql_num_rows($busca)>0) { while ($texto = mysql_fetch_array($busca)) { extract($texto); echo '<h2>'.$titulo.'</h2>'; echo '<p>'. nl2br($artigo).'</p>'; } $prox = $pag + 1; $ant = $pag - 1; $ultima_pag = ceil($total / $limite); $penultima = $ultima_pag - 1; $adjacentes = 2; echo '<div class="paginacao">'; if ($pag>1) { $paginacao = '<a href="index.php?pag='.$ant.'">anterior</a>'; } if ($ultima_pag <= 5) { for ($i=1; $i< $ultima_pag+1; $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="index.php?pag='.$i.'">'.$i.'</a>'; } else { $paginacao .= '<a href="index.php?pag='.$i.'">'.$i.'</a>'; } } } if ($ultima_pag > 5) { if ($pag < 1 + (2 * $adjacentes)) { for ($i=1; $i< 2 + (2 * $adjacentes); $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="index.php?pag='.$i.'">'.$i.'</a>'; } else { $paginacao .= '<a href="index.php?pag='.$i.'">'.$i.'</a>'; } } $paginacao .= '...'; $paginacao .= '<a href="index.php?pag='.$penultima.'">'.$penultima.'</a>'; $paginacao .= '<a href="index.php?pag='.$ultima_pag.'">'.$ultima_pag.'</a>'; } elseif($pag > (2 * $adjacentes) && $pag < $ultima_pag - 3) { $paginacao .= '<a href="index.php?pag=1">1</a>'; $paginacao .= '<a href="index.php?pag=1">2</a> ... '; for ($i = $pag-$adjacentes; $i<= $pag + $adjacentes; $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="index.php?pag='.$i.'">'.$i.'</a>'; } else { $paginacao .= '<a href="index.php?pag='.$i.'">'.$i.'</a>'; } } $paginacao .= '...'; $paginacao .= '<a href="index.php?pag='.$penultima.'">'.$penultima.'</a>'; $paginacao .= '<a href="index.php?pag='.$ultima_pag.'">'.$ultima_pag.'</a>'; } else { $paginacao .= '<a href="index.php?pag=1">1</a>'; $paginacao .= '<a href="index.php?pag=1">2</a> ... '; for ($i = $ultima_pag - (4 + (2 * adjacentes)); $i <= $ultima_pag; $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="index.php?pag='.$i.'">'.$i.'</a>'; } else { $paginacao .= '<a href="index.php?pag='.$i.'">'.$i.'</a>'; } } } } } if ($prox <= $ultima_pag && $ultima_pag > 2) { $paginacao .= '<a href="index.php?pag='.$prox.'">próxima »</a>'; } echo $paginacao; echo '</div>'; ?> </div> </body> </html> BUSCA <form method="GET" action="http://www.meusite.com.br/busca.php"> <fieldset> <label for="consulta">Buscar:</label> <input type="text" id="consulta" name="consulta" maxlength="255" /> <input type="submit" value="OK" /> </fieldset> </form> <?php // Verifica se foi feita alguma busca // Caso contrario, redireciona o visitante if (!isset($_GET['consulta'])) { header("Location: http://www.meusite.com.br/"); exit; } // Se houve busca, continue o script: // Salva o que foi buscado em uma variável $busca = $_GET['consulta']; // Usa a função mysql_real_escape_string() para evitar erros no MySQL $busca = mysql_real_escape_string($busca); // ============================================ // Monta outra consulta MySQL para a busca $sql = "SELECT * FROM `noticias` WHERE (`ativa` = 1) AND ((`titulo` LIKE '%".$busca."%') OR ('%".$busca."%')) ORDER BY `cadastro` DESC"; // Executa a consulta $query = mysql_query($sql); // ============================================ // Começa a exibição dos resultados echo "<ul>"; while ($resultado = mysql_fetch_assoc($query)) { $titulo = $resultado['titulo']; $texto = $resultado['texto']; $link = 'http://www.meusite.com.br/noticia.php?id=' . $resultado['id']; echo "<li>"; echo '<a href="'.$link.'" title="'.$titulo.'">'.$titulo.'</a><br />'; echo date('d/m/Y H:i', strtotime($resultado['cadastro'])); echo '<p>'.$texto.'</p>'; echo '<a href="'.$link.'" title="'.$titulo.'">'.$link.'</a>'; echo "</li>"; } echo "</ul>"; ?> Ja quebrei a kbça e nada =/ se alguem puder me dar uma forcinha de como ficaria meu código agradeço! Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Dezembro 12, 2011 Você vai precisar modificar sua query de busca modificando qual porção de dados será retornada integrando parâmetros GET, para condicionar a página da vez, com uma cláusula LIMIT COM offset. Compartilhar este post Link para o post Compartilhar em outros sites
RamonTav 1 Denunciar post Postado Dezembro 12, 2011 what? Bruno é que sou meio novato no mundo do php poderia me auxiliar a fazer oq você falou? Não entendi nada ^^ Mais vlw por querer me ajudar! Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Dezembro 13, 2011 Basicamente, no final da query você adiciona: LIMIT X,Y No lugar do X você coloca o valor da página desejada multiplicado pelo número de registros por página. E no lugar do Y, o número de registros por página. Esse valor da página vêm através via URL: www.domain.com/search.php?page=1 e você pega como $_GET['page'] Isso é a base, agora coloque em código e veja se funciona. Se não, poste sua tentativa. Compartilhar este post Link para o post Compartilhar em outros sites
RamonTav 1 Denunciar post Postado Dezembro 13, 2011 Mais uma vez venho aqui agradeçer sua atenção Bruno haja paciência :D Vamos lá... O LIMIT e o GET ja estão sendo executados la no inicio da página da uma olhada como fiz meu codigo $pag = ($_GET['pag']); $pag = filter_var($pag, FILTER_VALIDATE_INT); $inicio = 0; $limite = 1 ; if ($pag!='') { $inicio = $pag - 1; } $busca_total = mysql_query("SELECT COUNT(*) AS total FROM `noticias` WHERE (`ativa` = 1) AND ((`titulo` LIKE '%".$pag."%') OR ('%".$pag."%'))"); $total = mysql_fetch_array($busca_total); $total = $total['total']; $busca = mysql_query("SELECT * FROM noticias LIMIT $inicio, $limite"); if (mysql_num_rows($busca)>0) { while ($texto = mysql_fetch_array($busca)) { extract($texto); echo '<h2>'.$titulo.'</h2>'; echo '<p>'. nl2br($texto).'</p>'; } Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Dezembro 13, 2011 Pelo visto não funcionou né? Mas você também você não fez o que eu disse xD Ou se fez não percei onde xD 2 Veja, a lógica para o X é multiplicar o número da página pelo valor de Y e o Y sim, este é fixo: $y = 50; // Resultados por página $x = ( isset( $_GET['page'] ) && ! empty( $_GET['page'] ) ? $_GET['page'] : 1 ); $x *= $y; Daí na query você faz como já fez, porém trocando os nomes variáveis, claro. Eu usei X e Y para ilustrar como eu tiha explicado anteriormente. Veja se agora dá certo. Compartilhar este post Link para o post Compartilhar em outros sites
RamonTav 1 Denunciar post Postado Dezembro 13, 2011 Eu fiz oq você me disse e não deu certo =/ o sistema de busca ainda não consegue páginar =/ tipo eu posso postar o link da páginação para você da um saque e me ajudar a implementar a busca nela? é que la esta mais explicativo e talz! $limite = 2; // Resultados por página $inicio = ( isset( $_GET['pag'] ) && ! empty( $_GET['pag'] ) ? $_GET['pag'] : 1 ); $inicio *= $limite Mais tipo esta linha aqui faz a mesma coisa que você disse ela limita as páginas e talz! $pag = ($_GET['pag']); $pag = filter_var($pag, FILTER_VALIDATE_INT); $inicio = 0; $limite = 50; if ($pag!='') { $inicio = ($pag - 1) * $limite; } Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Dezembro 13, 2011 Se tiver um link online seria melhor. No fundo, no fundo, eu vejo a lógica como certa, e por isso acredito que você não esteja construindo seus links certo. Quanto ao seu bloco de código, agora ele reflete o que eu disse. Antes você não multiplicava nada. ;) Compartilhar este post Link para o post Compartilhar em outros sites
RamonTav 1 Denunciar post Postado Dezembro 14, 2011 Me desculpa Bruno eu fiz oq você disse mais se eu fiz errado foi pq ainda estou começando a entender o php =/ eu estou estudando e talz so q ainda n ta entrando na minha cabeça =/ muitas coisas eu consigo resolver mais isso ai ta me tirando o sono to passando horas no pc fico horas sem comer sem dormir tentando mais n consigo =/ e Bruno mais uma vez obrigado kra pela paciencia e pela vontade de ajudar! Bruno Achei um sistema de paginação bem mais simples e facil de entender aqui mesmo no forum segue o link http://forum.imasters.com.br/topic/192785-script-para-paginacao-bem-simples/ Agora so estou com duvida de como implantar a busca nela =/ Compartilhar este post Link para o post Compartilhar em outros sites
RamonTav 1 Denunciar post Postado Dezembro 14, 2011 Ae Bruno to quase la man eu consegui deixar bem melhor os unicos problemas que eu estou tendo é o seguinte Clico no Form com o campo vazio e ele me mostra todos os itens cadastrados na minha tabela e quando eu faço a pesquisa por algum nome no campo acontece o mesmo vai o codigo <? include('conexao.php');?> <?php //######### INICIO Paginação $numreg = 2; // Quantos registros por página vai ser mostrado if (!isset($pg)) { $pg = 0; } $inicial = $pg * $numreg; //######### FIM dados Paginação // Salva o que foi buscado em uma variável $busca = $_GET['busca']; // Usa a função mysql_real_escape_string() para evitar erros no MySQL $busca = mysql_real_escape_string($busca); // Faz o Select pegando o registro inicial até a quantidade de registros para página $sql = mysql_query("SELECT * FROM noticias LIMIT $inicial, $numreg"); // Serve para contar quantos registros você tem na seua tabela para fazer a paginação $sql_conta = mysql_query("SELECT * FROM `noticias` WHERE (`ativa` = 1) AND ((`titulo` LIKE '%".$busca."%') OR ('%".$busca."%')) ORDER BY `cadastro` DESC"); $quantreg = mysql_num_rows($sql_conta); // Quantidade de registros pra paginação print("Sua busca retornou <b>$quantreg</b> resultados.<br>\n"); include("paginacao.php"); // Chama o arquivo que monta a paginação. ex: << anterior 1 2 3 4 5 próximo >> echo "<br><br>"; // Vai servir só para dar uma linha de espaço entre a paginação e o conteúdo // Começa a exibição dos resultados echo "<ul>"; while ($resultado = mysql_fetch_assoc($sql)) { $titulo = $resultado['titulo']; $texto = $resultado['texto']; $link = 'http://www.meusite.com.br/noticia.php?id=' . $resultado['id']; echo "<li>"; echo '<a href="'.$link.'" title="'.$titulo.'">'.$titulo.'</a><br />'; echo date('d/m/Y H:i', strtotime($resultado['cadastro'])); echo '<p>'.$texto.'</p>'; echo '<a href="'.$link.'" title="'.$titulo.'">'.$link.'</a>'; echo "</li>"; } echo "</ul>"; ?> Compartilhar este post Link para o post Compartilhar em outros sites
Paulo Roberto Start Corp 1 Denunciar post Postado Dezembro 14, 2011 Boa Tarde Galera mais uma vez quero pedir uma ajudinha :) Estou com 2 codigos um é de paginação e o outro é de busca, eu gostaria que meu sistema de busca ficasse com com esta páginação. PÁGINAÇÃO <?php $db = "db"; @mysql_connect("localhost", "usuario", "senha") or trigger_error(mysql_error(),E_USER_ERROR); mysql_select_db($db); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Paginação Avançada com PHP</title> <link rel="stylesheet" type="text/css" href="estilo.css" /> </head> <body> <div class="global-div"> <h1>Paginação Avançada com PHP</h1> <?php $pag = ($_GET['pag']); $pag = filter_var($pag, FILTER_VALIDATE_INT); $inicio = 0; $limite = 1 ; if ($pag!='') { $inicio = $pag - 1; } $busca_total = mysql_query("SELECT COUNT(*) as total FROM artigos"); $total = mysql_fetch_array($busca_total); $total = $total['total']; $busca = mysql_query("SELECT * FROM artigos LIMIT $inicio, $limite"); if (mysql_num_rows($busca)>0) { while ($texto = mysql_fetch_array($busca)) { extract($texto); echo '<h2>'.$titulo.'</h2>'; echo '<p>'. nl2br($artigo).'</p>'; } $prox = $pag + 1; $ant = $pag - 1; $ultima_pag = ceil($total / $limite); $penultima = $ultima_pag - 1; $adjacentes = 2; echo '<div class="paginacao">'; if ($pag>1) { $paginacao = '<a href="index.php?pag='.$ant.'">anterior</a>'; } if ($ultima_pag <= 5) { for ($i=1; $i< $ultima_pag+1; $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="index.php?pag='.$i.'">'.$i.'</a>'; } else { $paginacao .= '<a href="index.php?pag='.$i.'">'.$i.'</a>'; } } } if ($ultima_pag > 5) { if ($pag < 1 + (2 * $adjacentes)) { for ($i=1; $i< 2 + (2 * $adjacentes); $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="index.php?pag='.$i.'">'.$i.'</a>'; } else { $paginacao .= '<a href="index.php?pag='.$i.'">'.$i.'</a>'; } } $paginacao .= '...'; $paginacao .= '<a href="index.php?pag='.$penultima.'">'.$penultima.'</a>'; $paginacao .= '<a href="index.php?pag='.$ultima_pag.'">'.$ultima_pag.'</a>'; } elseif($pag > (2 * $adjacentes) && $pag < $ultima_pag - 3) { $paginacao .= '<a href="index.php?pag=1">1</a>'; $paginacao .= '<a href="index.php?pag=1">2</a> ... '; for ($i = $pag-$adjacentes; $i<= $pag + $adjacentes; $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="index.php?pag='.$i.'">'.$i.'</a>'; } else { $paginacao .= '<a href="index.php?pag='.$i.'">'.$i.'</a>'; } } $paginacao .= '...'; $paginacao .= '<a href="index.php?pag='.$penultima.'">'.$penultima.'</a>'; $paginacao .= '<a href="index.php?pag='.$ultima_pag.'">'.$ultima_pag.'</a>'; } else { $paginacao .= '<a href="index.php?pag=1">1</a>'; $paginacao .= '<a href="index.php?pag=1">2</a> ... '; for ($i = $ultima_pag - (4 + (2 * adjacentes)); $i <= $ultima_pag; $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="index.php?pag='.$i.'">'.$i.'</a>'; } else { $paginacao .= '<a href="index.php?pag='.$i.'">'.$i.'</a>'; } } } } } if ($prox <= $ultima_pag && $ultima_pag > 2) { $paginacao .= '<a href="index.php?pag='.$prox.'">próxima »</a>'; } echo $paginacao; echo '</div>'; ?> </div> </body> </html> BUSCA <form method="GET" action="http://www.meusite.com.br/busca.php"> <fieldset> <label for="consulta">Buscar:</label> <input type="text" id="consulta" name="consulta" maxlength="255" /> <input type="submit" value="OK" /> </fieldset> </form> <?php // Verifica se foi feita alguma busca // Caso contrario, redireciona o visitante if (!isset($_GET['consulta'])) { header("Location: http://www.meusite.com.br/"); exit; } // Se houve busca, continue o script: // Salva o que foi buscado em uma variável $busca = $_GET['consulta']; // Usa a função mysql_real_escape_string() para evitar erros no MySQL $busca = mysql_real_escape_string($busca); // ============================================ // Monta outra consulta MySQL para a busca $sql = "SELECT * FROM `noticias` WHERE (`ativa` = 1) AND ((`titulo` LIKE '%".$busca."%') OR ('%".$busca."%')) ORDER BY `cadastro` DESC"; // Executa a consulta $query = mysql_query($sql); // ============================================ // Começa a exibição dos resultados echo "<ul>"; while ($resultado = mysql_fetch_assoc($query)) { $titulo = $resultado['titulo']; $texto = $resultado['texto']; $link = 'http://www.meusite.com.br/noticia.php?id=' . $resultado['id']; echo "<li>"; echo '<a href="'.$link.'" title="'.$titulo.'">'.$titulo.'</a><br />'; echo date('d/m/Y H:i', strtotime($resultado['cadastro'])); echo '<p>'.$texto.'</p>'; echo '<a href="'.$link.'" title="'.$titulo.'">'.$link.'</a>'; echo "</li>"; } echo "</ul>"; ?> Ja quebrei a kbça e nada =/ se alguem puder me dar uma forcinha de como ficaria meu código agradeço! Olá boa tarde cara usa um plugin de jquery é simplismente otimo http://datatables.net/ ele faz a busca organiza por descriçao modelo ou etc... muito bom mesmo da uma olhada qualquer coisa posta ai que te ajudo com datatable abraço Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Dezembro 14, 2011 Olha só: $sql = mysql_query("SELECT * FROM noticias LIMIT $inicial, $numreg"); // Serve para contar quantos registros você tem na seua tabela para fazer a paginação $sql_conta = mysql_query("SELECT * FROM `noticias` WHERE (`ativa` = 1) AND ((`titulo` LIKE '%".$busca."%') OR ('%".$busca."%')) ORDER BY `cadastro` DESC"); E isso: while ($resultado = mysql_fetch_assoc($sql)) { // ... } O que você acha que está acontecendeo aqui? O while que vai iterar sobre o total de notícias resultantes da busca está operando com o array resultante da primeira query, que não tem filtro (WHERE) nenhum. Compartilhar este post Link para o post Compartilhar em outros sites
RamonTav 1 Denunciar post Postado Dezembro 15, 2011 Resolvi a busca que fazia mesmo com o campo vazio! if(!$busca){ die("Não foi possivel realizar a consulta!!"); } E o erro no While while ($resultado = mysql_fetch_assoc($sql)) { // ... } Ficou Assim while ($resultado = mysql_fetch_assoc($sql_conta)) { // ... } Resolvi isto ai, mas agora apareceu um probleminha que não tinha percebido =/ Registrei 6 noticias com o mesmo nome, quando faço a busca a paginação não limita a quantidade de resultados por página oq eu poderia fazer para resolver isso so me falta isto mesmo para terminar este codigo auhauhaua Compartilhar este post Link para o post Compartilhar em outros sites
RamonTav 1 Denunciar post Postado Dezembro 18, 2011 Resolvi, to ficando ligado no php ! :natalbiggrin: $sql = mysql_query("SELECT * FROM `noticias` WHERE (`ativa` = 1) AND ((`titulo` LIKE '%".$busca."%') OR ('%".$busca."%')) ORDER BY `cadastro` DESC LIMIT $inicial, $numreg"); So coloquei a mesma coisa do sql_conta na variavel sql mais desta vez add LIMIT $inicial, $numreg" Muito obrigado Bruno Augusto pela força desculpe por te fazer perder tempo com minha ignorância auhauhau. Queria tbm agradecer a todas as pessoas deste fórum maravilhoso, estou aprendendo bastante sobre php e que este Artigo venha servir para outras pessoas. Obrigado mesmo! RESOLVIDO! Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Dezembro 18, 2011 Beleza, você demorou um pouco mas entendeu o que disse. Se o seu HTML não estivesse entranhado no PHP, você teria resolvido vários posts atrás. Compartilhar este post Link para o post Compartilhar em outros sites
tiago_c 0 Denunciar post Postado Fevereiro 22, 2012 Beleza, você demorou um pouco mas entendeu o que disse. Se o seu HTML não estivesse entranhado no PHP, você teria resolvido vários posts atrás. Boa noite pessoal, preciso de uma ajudinha, etou a tentar fazer um sistema de busca com paginação, mas estou com 1 problema mal abro a pagina de pesquisa.php ele retorna-me logo todos os items da base de dados. Alguem sabe como contornar este problema? o codigo é o seguinte: <?php session_start(); include("cn.php"); ?> <!DOCTYPE HTML> <html> <head> <meta> <!-- www.phpied.com/conditional-comments-block-downloads/ --> <!-- [id IE]><![endif] --> <meta http-equiv="X-UA-Compatible" conten="IE-edge,chrome=1"> <link rel="shortcut icon" href="/favicon.ico"> <link rel="stylesheet" href="css/reset.css"/> <link rel="stylesheet" href="css/text.css"/> <link rel="stylesheet" href="css/960.css"/> <link rel="stylesheet" href="css/style.css"/> <!-- [if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif] --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script src="js/animate-shadow-min.js"></script> <script src="js/script.js"></script> <title>Bom e Barato</title> </head> <body> <div id="line-up"> </div> <div id="container" class="container_12"> <div id="login" class="grid_12"> <?php if (!isset($_SESSION['user'])) { ?> <form action="login.php" id="login-form" method="post"> <ul> <li><input type="text" name="email" placeholder="email" /></li> <li><input type="password" name="password" placeholder="password" /></li> <li><a href="javascript:{}" onclick="document.getElementById('login-form').submit(); return false;"> <img src="img/login-bt.png" alt="" /> </a> </li> </ul> </form> <?php } else { ?> <form action="logout.php" id="logout" method=POST> <p align=right> <?php echo $_SESSION['user']; ?> <a href="javascript:{}" onclick="document.getElementById('logout').submit(); return false;">Logout</a> | <a href=inserir.php>Inserir um anúncio</a> </form> <?php } ?> </div><!-- end login> --> <div id="menu" class"grid_12"> <ul> <li> <a href="index.php">Inicio</a> </li> <li> <a href="pesquisa.php">Pesquisa</a> </li> <li> <a href="sobre_nos.php">Sobre Nós</a> </li> <li> <a href="contactos.php">Contactos</a> </li> </ul> </div> <!-- end menu --> <section class="grid_12"> <div id="compra-venda" class="grid_3 alpha tabs"> <ul> <a href="compra_venda.php"> <li> <h5>Compra-Venda</h5> </li> <li> <h6> <?php //seleciona toda a tabela $sql = mysql_query("SELECT * FROM items WHERE categoria=1"); //Conta quantos registros possuem na tabela $total = mysql_num_rows($sql); //Mostra o valor echo "(".$total." items)"; ?> </h6> </li> <li> <img src="img/compra-venda-icon.png" alt="" /> </li> </a> </ul> </div><!-- end compra-venda --> <div id="imoveis" class="grid_3 tabs"> <ul> <a href="imoveis.php"> <li> <h5>Imóveis</h5> </li> <li> <h6> <?php //seleciona toda a tabela $sql = mysql_query("SELECT * FROM items WHERE categoria=2"); //Conta quantos registros possuem na tabela $total = mysql_num_rows($sql); //Mostra o valor echo "(".$total." items)"; ?> </h6> </li> <li> <img src="img/imoveis-icon.png" alt="" /> </li> </a> </ul> </div> <!-- end imoveis --> <div id="servicos" class="grid_3 tabs"> <ul> <a href="servicos.php"> <li> <h5>Serviços</h5> </li> <li> <h6> <?php //seleciona toda a tabela $sql = mysql_query("SELECT * FROM items WHERE categoria=3"); //Conta quantos registros possuem na tabela $total = mysql_num_rows($sql); //Mostra o valor echo "(".$total." items)"; ?> </h6> </li> <li> <img src="img/servicos-icon.png" alt="" /> </li> </a> </ul> </div> <!-- end servicos --> <div id="emprego" class="grid_3 omega tabs"> <ul> <a href="empregos.php"> <li> <h5>Empregos</h5> </li> <li> <h6> <?php //seleciona toda a tabela $sql = mysql_query("SELECT * FROM items WHERE categoria=4"); //Conta quantos registros possuem na tabela $total = mysql_num_rows($sql); //Mostra o valor echo "(".$total." items)"; ?> </h6> </li> <li> <img src="img/empregos-icon.png" alt="" /> </li> </a> </ul> </div> <!-- end emprego --> </section> <section class="grid_12"> <div class="listar"> <h2>Pesquisa</h2> <form name="frmBusca" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>?a=buscar" > <input type="text" name="palavra" /> <input type="submit" value="Pesquisar" /> </form> <?php $link = mysql_connect("127.0.0.1","root","") or die("Falhou ligação"); mysql_select_db("beb"); // Recuperamos a ação enviada pelo formulário $a = $_GET['a']; // Verificamos se a ação é de busca if ($a == "buscar") { // Pegamos a palavra $palavra = trim($_POST['palavra']); // Verificamos no banco de dados produtos equivalente a palavra digitada $sql = mysql_query("SELECT * FROM items WHERE titulo LIKE '%".$palavra."%'"); // Descobrimos o total de registros encontrados $numRegistros = mysql_num_rows($sql); } // Informações da query $campos_query = "id,titulo,descricao,categoria,owner,preco,owner,foto"; $final_query = "FROM items WHERE titulo LIKE '%".$palavra."%'"; // Maximo de registros por pagina $maximo = 1; // Declaração da pagina inicial $pagina = $_GET["pagina"]; if($pagina == "") { $pagina = "1"; } // Calculando o registro inicial $inicio = $pagina - 1; $inicio = $maximo * $inicio; // Conta os resultados no total da query $strCount = "SELECT COUNT(*) AS 'num_registros' $final_query"; $query = mysql_query($strCount); $row = mysql_fetch_array($query); $total = $row["num_registros"]; ################################################################################### // INICIO DO CONTEÚDO // Realizamos a query $sql = mysql_query("SELECT $campos_query $final_query LIMIT $inicio,$maximo"); if (mysql_num_rows($sql)<1) echo "Nenhum produto foi encontrado com a palavra <b>".$palavra."</b>"; else { // Exibimos os nomes dos produtos e seus repectivos valores while ($linha = mysql_fetch_object($sql)) { echo " <div class=\"produtos\"> <div class=\"prod_img\"> <img src=\"fotos/".$linha->foto."\"/> </div> <ul> <li class=\"nome\"><a href=ficha.php?id=".$linha->id.">".$linha->titulo."</a></li> <li class=\"desc\">".$linha->descricao."</li> <li class=\"preco\">".$linha->preco." €</li> </ul> </div>"; } } // FIM DO CONTEUDO ################################################################################### $menos = $pagina - 1; $mais = $pagina + 1; $pgs = ceil($total / $maximo); if($pgs > 1 ) { echo "<br />"; // Mostragem de pagina if($menos > 0) { echo "<a href=".$_SERVER['PHP_SELF']."?pagina=$menos>Anterior</a> "; } // Listando as paginas for($i=1;$i <= $pgs;$i++) { if($i != $pagina) { echo " <a href=".$_SERVER['PHP_SELF']."?pagina=".($i).">$i</a> | "; } else { echo " <strong>".$i."</strong> | "; } } if($mais <= $pgs) { echo " <a href=".$_SERVER['PHP_SELF']."?pagina=$mais>Próxima</a>"; } } ?> </div><!-- listar --> </section> </div><!-- end container --> <div id="footer-wrap"> <footer class="container_12"> <p>© 2012 - Bom e Barato - All Rights Reserved</p> </footer> </div> Compartilhar este post Link para o post Compartilhar em outros sites