New question

Question:

Date: 04-04-2018 12:33:02 (In Spanish)

Problema con el Paginador de mi tienda online (PHP y MySQL)[Unresolved]

Buenas tardes, tengo un problema con el paginador de mi tienda online. el problema radica en que cuando si estoy en la zona bogota me muestra los productos de esa zona maximo 10, entonces cuando le doy en siguiente pagina, me manda a otra zona medellin (a cualquier zona). Necesito que me lleve a la otra pagina de la misma zona. No se cual es el problema si me pueden ayudar gracias.

Este es el código al inicio de la pagina de mostrarproductos.php
<?php
session_start();
include("php/conexion.php");
  if(isset($_GET['id_subcategoria'])){ // nuevo
   
  $registros0=mysqli_query($link,"select id_producto from productos where id_subcategoria='$_GET[id_subcategoria]'") or die ("Error al conectar con la tabla".mysqli_error($link));
  
 }
 else{ // viejo 

// paginador primera parte
 $registros0=mysqli_query($link,"select id_producto from productos where id_zona='$_GET[id_zona]'") or die ("Error al conectar con la tabla".mysqli_error($link));
}
 $numero_total_registros=mysqli_num_rows($registros0);
 //podemos modifica
 $TAMANO_PAGINA = 10;
        $pagina = false;

        if (isset($_GET["pagina"]))
            $pagina = $_GET["pagina"];
        
  if (!$pagina) {
    $inicio = 0;
    $pagina = 1;
  }
  else {
    $inicio = ($pagina - 1) * $TAMANO_PAGINA;
  }
 $total_paginas = ceil($numero_total_registros / $TAMANO_PAGINA);
/*$registros1=mysqli_query($link,"select * from productos order by nombre asc LIMIT ".$inicio."," .$TAMANO_PAGINA) or die ("Error al conectar con la tabla".mysql_error($link));*/
 // fin paginador


este es el paginador como se muestra en la misma pagina de mostrarproductos.php
<nav>
  <ul class="pagination">  
<?php
// paginador segunda parte
if ($total_paginas > 1) {
    if ($pagina != 1)
    
    ?>
      <li><a href="mostrarproductos.php?<?php if(isset($_GET['name'])){ ?>&name=<?php echo $_GET['name']; }?>&id_zona=<?php echo $_GET['id_zona']; if(isset($_GET['id_subcategoria'])) { ?>&id_subcategoria=<?php echo $_GET['id_subcategoria']; }?>&pagina=<?php echo ($pagina-1); ?>" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a></li>
    
    <?php
      
    for ($i=1;$i<=$total_paginas;$i++) {
      if ($pagina == $i){
    ?>    
        <li><a href="#"><div class="color-pag"><?php echo $pagina; ?></div></a></li>
        <?php
      }
      else{
    ?>  
                <li><a href="mostrarproductos.php?<?php if(isset($_GET['name'])){ ?>&name=<?php echo $_GET['name']; }?>&id_zona=<?php echo $_GET['id_zona']; if(isset($_GET['id_subcategoria'])) { ?>&id_zona=<?php echo $_GET['id_subcategoria']; }?>&pagina=<?php echo $i; ?>" aria-label="Previous"><span aria-hidden="true"><?php echo $i; ?></span></a></li>
        
        <?php
      }
    }
    if ($pagina != $total_paginas){
    ?>
          
            <li><a href="mostrarproductos.php?<?php if(isset($_GET['name'])){ ?>&name=<?php echo $_GET['name']; }?>&id_zona=<?php echo $_GET['id_zona']; if(isset($_GET['id_subcategoria'])) { ?>&id_subcategoria=<?php echo $_GET['id_subcategoria']; }?>&pagina=<?php echo ($pagina+1); ?>" aria-label="Next"><span aria-hidden="true">&raquo;</span></a></li>
            
    <?php
    }
  }
  
 
  cerrarconexion();  

?>
    </ul>
</nav>
Tags: HTML5 - MySQL - Pagination - PHP - PHP MySQLi - Question Votes: 0 - Answers: 2 - Views: 9 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 04-04-2018 17:49:30 Hola,
    Te doy un ejemplo simple del mismo, ya que te falta en tu consulta.
    $tabla = "blog";
    // Registros a mostrar en cada página
    $regVistos = 12;
    // Consulta que devuelve todos los registros
    $lista0 = mysqli_query($_construct, "SELECT id FROM ".$tabla);
    // Se cuentan los registros devueltos por la consulta SQL $lista0
    $totalSql = mysqli_num_rows($lista0);
    // Páginas que van a aparecer, redondeando los decimales siempre hacia arriba
    $pagTotal = ceil($totalSql/$regVistos);
    // Se definen la página actual (desde el parámetro 'pag' de la URL) y las páginas anterior y siguiente
    if (!isset($_GET["num"])){
    	$pagActual = 1;
    }else{
    	$pagActual= $_GET["num"];
    }
    $pagAnterior = $pagActual-1;
    $pagSiguiente = $pagActual+1;
    // Consulta SQL con la que se sacará el listado de registros
    $lista1 = mysqli_query($_construct, "SELECT id, title FROM ".$tabla." WHERE id='{$id}' ORDER BY id DESC LIMIT ".(($pagActual-1)*$regVistos).",".$regVistos)or die(mysqli_error($_construct));
    // Bucle para generar el listado de registros
    while($fila = mysqli_fetch_assoc($lista1)) {
    // Aquí lo que se va a replicar
    }
    if ($pagAnterior>0){
    	if($pagAnterior === 1){
    		echo '<a class="link" href="blogs.php"> < anterior</a>';
    	}else{
    		echo '<a class="link" href="blogs.php?page='.$pagAnterior.'/">< Anterior</a>';
    	}
    }
    // Se saca el listado de páginas mediante un bucle
    $pgIntervalo = 5; // Páginas que aparecen antes y después de la actual
    $pgMaximo = ($pgIntervalo*2)+1; // Máximo de páginas en el listado
    $pg = $pagActual-$pgIntervalo; $i=0;
    while ($i<$pgMaximo) {
    	if ($pg==$pagActual){
    		$strong=array('active','</strong>');
    	}else{
    		$strong=array('','');
    	}
    	if ($pg>0 and $pg<=$pagTotal){
    		if($pg===1){
    			echo '<a class="link '.$strong[0].'" href="blogs.html">'.$pg.'</a>';
    		}else{
    			echo '<a class="link '.$strong[0].'" href="blogs.php?page='.$pg.'/">'.$pg.'</a>';
    		}
    		$i++;
    	}
    	if ($pg>$pagTotal){
    		$i=$pgMaximo;
    	} // Si la página que se va a mostrar se pasa de la cantidad de páginas definidas en $pagTotal se para la generación de elementos de lista
    	$pg++;
    }
    // Si la página actual no es la última, se muestra el enlace a la página siguiente
    if($pagSiguiente<=$pagTotal){
    	echo '<a class="link" href="blogs.php?page'.$pagSiguiente.'/">Siguiente ></a>';
    }
    

    Espero te sirva.
    Saludos
    Equipo @QuéCódigo
      Votes: 0 - Link answer
     
  • Date: 08-07-2019 18:59:42 <?php
    //definimos la cantidad de registros a mostrar en la paginaci?n
    define("reg",5);
    -- CONEXION A LA BDD --
    $pag = !isset($_GET['pag']);
    if(empty($pag))
    {
    $pag = 1;
    }
    $primerregistro=(reg*$pag)-reg;
    // Capturamos los valores de la busqueda
    $situacion=(isset($_GET['situacion'])) ? $_GET['situacion']:"";
    $centro=(isset($_GET['centro'])) ? $_GET['centro']:"";

    // finalizamos las capturas de las busquedas

    $query1 = "select * ";
    $querycant = "select count(*) as cantidad ";
    $query = "from BDD
    where CONDICION ";
    if(!empty($centro))
    {
    $query .= "&&centro = '$centro' ";
    }
    if(!empty($situacion))
    {
    $query .= "&&$situacion like '%SI%' ";
    }
    $query .= "ORDER BY fechalta DESC ";
    $query1 .=$query." LIMIT $primerregistro,".reg;
    $querycant .=$query;
    $res =mysql_query($query1,$link);
    $res_cant =mysql_query($querycant,$link);
    $v_cant =mysql_fetch_array($res_cant);
    $paginas =ceil($v_cant['cantidad']/reg);
    $urlGet ="situacion=$situacion";
    ?>

    <div class="container-fluid" id="">
    <div class="cl-mcont">
    <div class="row">
    <div class="col-sm-12 col-md-12">
    <div class="block-flat">
    <div class="header">
    <h3>Listado de C&aacute;maras con Selecci&oacute;n de Defectos</h3>
    </div>
    <div class="content">
    <form action='ppal.php' method="GET" class="form-horizontal" role="form">
    <input type="hidden" name="opc" value="152">
    <div class="form-group">
    <div class="col-sm-4">
    <input type="text" name="centro" id="centro" size="5" maxlength="5" class="form-control" autofocus="" placeholder="Ingrese el N&deg; de C&aacute;mara" value="<?php echo $centro; ?>"/>
    </div>
    <div class="col-sm-4 col-md-4">
    <select name="situacion" id="situacion" class="form-control">
    <option value="" selected="selected" >Todas</option>
    <option value="da_camozono" <?php if($situacion == "da_camozono") { echo "selected"; } ?>>C&aacute;mara con Ozono</option>
    <option value="da_caminund" <?php if($situacion == "da_caminund") { echo "selected"; } ?>>C&aacute;mara Inundable</option>

    </select>
    </div>
    <div class="col-sm-3 col-md-3">
    <label>&nbsp;</label>
    <button type="submit" class="btn btn-default">Buscar</button>
    </div>
    </div>
    </div>
    </form>
    <?php
    if(mysql_num_rows($res)>0)
    {
    ?>
    <!-- Comienza el encabezado del listado normalmente -->
    <div class="table-responsive">
    <table class="table-bordered">
    <thead>
    <tr>
    <th style="width: 10%"><strong>ID</strong></th>
    <th style="width: 15%"><strong>N&deg; de C&aacute;mara</strong></th>
    <th style="width: 25%"><strong>Fecha de Informado</strong></th>
    <th style="width: 45%"></th>
    <th style="width: 5%"><strong>Acci&oacute;n</strong></th>
    </tr>
    </thead>
    <?php
    $i=0;
    while ($v=mysql_fetch_array($res))
    {
    if($v['situacion']=="ALTA")
    {
    $color="#ffebee";
    }
    elseif($v['situacion']=="MODI")
    {
    $color="#FFF8E1";
    }
    elseif($v['situacion']=="FINA")
    {
    $color="#E8F5E9";
    }
    ?>
    <tbody>
    <tr class="odd gradeA" bgcolor="<?php echo $color;?>">
    <td><?php echo $v['id'];?></td>
    <td><?php echo $v['centro'];?></td>
    <td><?php echo $v['fechalta'];?></td>
    <td>
    <?php
    if($v['m2_aviso_tipo']=="SI")
    {
    echo "M2";
    if($v['m2_aviso_numero']<>" ")
    {
    echo " - Aviso ".$v['m2_aviso_numero'];
    }
    if($v['m2_aviso_situacion']<>" ")
    {
    echo " - Situacion ".$v['m2_aviso_situacion'];
    }
    }
    if($v['m3_aviso_tipo']=="SI")
    {
    echo " - M3";
    if($v['m3_aviso_numero']<>" ")
    {
    echo " - Aviso ".$v['m3_aviso_numero'];
    }
    if($v['m3_aviso_situacion']<>" ")
    {
    echo " - Situacion ".$v['m3_aviso_situacion'];
    }
    }

    if($v['m5_aviso_tipo']=="SI")
    {
    echo " - M5";
    if($v['m5_aviso_numero']<>" ")
    {
    echo " - Aviso ".$v['m5_aviso_numero'];
    }
    if($v['m5_aviso_situacion']<>" ")
    {
    echo " - Situacion ".$v['m5_aviso_situacion'];
    }
    }

    if($v['m7_aviso_tipo']=="SI")
    {
    echo " - M7";
    if($v['m7_aviso_numero']<>" ")
    {
    echo " - Aviso ".$v['m7_aviso_numero'];
    }
    if($v['m7_aviso_situacion']<>" ")
    {
    echo " - Situacion ".$v['m7_aviso_situacion'];
    }
    }

    if($v['m8_aviso_tipo']=="SI")
    {
    echo " - M8";
    if($v['m8_aviso_numero']<>" ")
    {
    echo " - Aviso ".$v['m8_aviso_numero'];
    }
    if($v['m8_aviso_situacion']<>" ")
    {
    echo " - Situacion ".$v['m8_aviso_situacion'];
    }
    }
    ?>
    </td>
    <!-- </td> -->
    <!-- boton de impresion -->
    <td>
    <a href="listdefcam_prn4.php?id=<?php echo $v['id'];?>" class="btn btn-info btn-sm" data-id="<?php echo $v['id'];?>">
    <i class="fa fa-print"></i></a>
    </td>
    <!-- fin del boton -->
    </tr>
    </tbody>
    <?php
    $i++;
    }
    ?>
    </table>
    <?php
    }
    else
    {
    ?>

    <div class="alert alert-warning">
    <strong>SIN Informaci&oacute;n</strong>
    </div>

    <?php
    }
    ?>

    <!-- Paginacion -->
    <div align="center">
    <div class="col col-xs-8">
    <?php
    if($pag != 1)
    {
    echo "<a href='ppal.php?opc=XX&pag=".($pag-1)."&$urlGet'> Anterior </a>&nbsp;";
    }
    for($i=1;$i<=$paginas;$i++)
    {
    if($i !=$pag)
    {
    echo "<a href='ppal.php?opc=XXX&pag=$i&$urlGet'>$i</a>&nbsp;";
    }
    else
    {
    echo "<strong> $i </strong>&nbsp;";
    }
    }
    if($pag != $paginas)
    {
    echo "<a href='ppal.php?opc=XX&pag=".($pag+1)."&$urlGet'> Siguiente </a>&nbsp;";
    }
    ?>
    </div>
    </div>
    <!-- Fin de la Paginacion -->

    </div>
    </div>
    </div>
    </div>
    </div>
    </div>
      Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In