Ir para conteúdo

POWERED BY:

Arquivado

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

Vitor Morais_179192

Foreach dentro de while.

Recommended Posts

Boa noite, pessoal.

 

Estou tentando fazer um código aqui, porém agarrei quando comecei a mexer com o while, entrei num loop infinito.

Olha só como tá o código na index:

<?php
   $pagina = (isset($_GET['pagina'])) ? $_GET['pagina'] : 1;
   $registros = listar('carros', 'carro_id, c_titulo, c_descricao, c_montadora, c_modelo, c_ano, c_km, c_cor, c_portas,  c_foto_1, c_cidades, c_ativo', 'c_ativo = 1', '', 'carro_id DESC'); 
   $linhas = count($registros);
   $adPorPagina = 12;
   $numPaginas = ceil($linhas/$adPorPagina);
   $inicio = ($linhas*$pagina)-$linhas;				
?>

No código acima eu estou fazendo uma busca por registros em um banco de dados, e em seguida crio uma contagem pra cada registro do array, que no final acaba sendo a quantidade de posts. Abaixo vem a limitação de posts por página, seguido do calculo para número de páginas, e por fim uma variável para calcular o início da visualização com base na página atual.

 

A minha função listar, está dessa forma:

#Lista registros de uma tabela
function listar($tabela, $campos = "*", $onde = NULL, $filtro = NULL, $ordem = NULL, $limite = NULL){
	$sql = "SELECT $campos FROM $tabela";
	if($onde){
		$sql .= " where $onde";
	}if($filtro){
		$sql .= " and $filtro";
	}if($ordem){
		$sql .= " ORDER BY $ordem";
	}if($limite){
		$sql .= " limit $limite";
	}
	$query = mysql_query($sql);
	$total = mysql_num_rows($query);
	$results = array();
	while($row = mysql_fetch_array($query)) {
        $results[] = $row;
    }
    return $results;
}

E de novo na index, crio o while para limitar a quantidade de posts por página, e em seguida um foreach para percorrer os registros.

<?php while($linhas <= $adPorPagina) { ?>
   <?php foreach($registros as $registro) : ?>
      <div class="col-xs-6 col-lg-4">
         <h2><a href="ver.php?carro_id=<?php echo $registro['carro_id']; ?>"><?php echo $registro['c_titulo']; ?></a></h2>
	 <img class="thumbhall img-responsive" src="<?php echo $registro['c_foto_1']; ?>" />
	  <p><strong>Detalhes:</strong> <?php echo $registro['c_montadora']; ?> | <?php echo $registro['c_modelo']; ?> | <?php echo $registro['c_ano']; ?> | <?php echo $registro['c_cor']; ?> | <?php echo $registro['c_km']; ?> km | <?php echo $registro['c_portas']; ?> portas</a></p>
      </div><!--/.col-xs-6.col-lg-4-->
   <?php endforeach; ?>
<?php } 
   for($i = 1; $i < $numPaginas + 1; $i++) {
      echo "<a href='paginacao.php?pagina=$i'>".$i."</a> ";
   }
?>

Alguém conseguiu ver meu erro?
Um abraço.

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.