Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/08/2016, 07:39
Avatar de manyblue
manyblue
 
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: Aprendiendo PDO, problema php y dreamweaber cc

Realmente solo me falla los botones de adelante y atras, ojo, estoy aprendiendo, esto es una paginación sencilla con PDO.

index.php
Código PHP:
<?php

try{
    
$conexion = new PDO('mysql:host=localhost;dbname=curso_php_mysql''root''');    
}catch(
PDOException $e){
    echo 
"Error: " $e->getMessage();
    die();
}

// Esto es lo mismo que hacer un 'if' 'else' -- si 'no se pone if si no la condicion' entonces '?' si no ':'
$pagina = isset($_GET['pagina']) ? (int)$_GET['pagina'] : ;

// Post por cada pagina
$PostPorPagina 5;

$inicio = ($pagina 1) ? ($pagina $PostPorPagina $PostPorPagina) : 0;

// SQL_CALC_FOUND_ROWS nos calcula cuantas filas hay en la tabla
$articulos $conexion->prepare("SELECT SQL_CALC_FOUND_ROWS * FROM articulos LIMIT $inicio, $PostPorPagina");

// Ejecutamos la consulta
$articulos->execute();
$articulos $articulos->fetchAll();

// Ver si hay articulos para una $pagina, si no reenviar al index.php
if(!$articulos){
    
header('location: index.php');
}

// Calculamos el numero total de articulos
$TotalArticulos $conexion->query('SELECT FOUND_ROWS() as total');
$TotalArticulos $TotalArticulos->fetch()['total'];

// Redondeamos al alza o valor superior con ceil()
$NumeroPaginas ceil($TotalArticulos $PostPorPagina);


require(
'index.view.php');

?>
index.view.php
Código PHP:
<!doctype html>
<html lang="es">

<head>
<meta charset="utf-8">
<title>Paginacion</title>
<link href="https://fonts.googleapis.com/css?family=Oswald" rel="stylesheet" type="text/css">
<link href="styles.css" rel="stylesheet" type="text/css">
</head>

<body>
    <div class="contenedor">
        <h1>Artículos</h1>
        <section class="articulos">
             <ul>
                 <?php foreach($articulos as $fila): ?>
                    <li><?php echo $fila['id'] . '.- ' $fila['articulo'?></li>
                 <?php endforeach; ?>
             </ul>
        </section>
        
        <section class="paginacion">
             <ul>
                 <!-- Establecemos cuando el boton anterior esta desabilitado -->
                 <?php if($pagina == 1): ?>
                   <li class="desable">&laquo;</li>
                 <?php else: ?>
                   <li><a href="?pagina=<?php $pagina 1 ?>">&laquo;</a></li>
                 <?php endif; ?>
                  
                 <!-- Ejecutamos un ciclo para mostrar las paginas -->  
                 <?php
                   
for ($i 1$i <= $NumeroPaginas$i++){
                       
                       if(
$pagina == $i){
                          echo 
"<li class='active'><a href='?pagina=$i'>$i</a></li>"
                       }else{
                           echo 
"<li><a href='?pagina=$i'>$i</a></li>"
                       }  
                   }
                 
?>
                 
                 <!-- Establecemos cuando el boton siguiente esta desabilitado -->
                 <?php if($pagina == $NumeroPaginas): ?>
                   <li class="desable">&raquo;</li>
                 <?php else: ?>
                   <li><a href="?pagina=<?php $pagina 1 ?>">&raquo;</a></li>
                 <?php endif; ?>
             </ul>
        </section>
    </div>
</body>

</html>
Mi problema es que el boton atras no van bien, el de atras me envía siempre a la pagina 1 y el boton adelante no funciona.
Los problemas creo que están aquí:
Código PHP:
$pagina = isset($_GET['pagina']) ? (int)$_GET['pagina'] : 
y aquí:
Código PHP:
 <!-- Establecemos cuando el boton anterior esta desabilitado -->
<?php if($pagina == 1): ?>
<li class="desable">&laquo;</li>
<?php else: ?>
 <li><a href="?pagina=<?php $pagina 1 ?>">&laquo;</a></li>
<?php endif; ?>

<!-- Establecemos cuando el boton siguiente esta desabilitado -->
<?php if($pagina == $NumeroPaginas): ?>
<li class="desable">&raquo;</li>
<?php else: ?>
<li><a href="?pagina=<?php $pagina 1 ?>">&raquo;</a></li>
<?php endif; ?>
¿Como podría resolverlo?
Muchísimas gracias de antema, un saludo.