Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/12/2019, 22:19
tuadmin
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años
Puntos: 120
Respuesta: Error en la consulta entre php pdo y postgresql

Cita:
Iniciado por madison_sg Ver Mensaje
Hola, estoy haciendo un paginador con PDO, al crear la consulta simple me regresa todos los valores de la base de datos, sin embargo; al ser un paginador debe traer los registros limitados por limit. Es importante mencionar que me estoy conectando a postgresql ya que la sintaxis muchas veces es diferente que la de mysql. Cuando ejecuto desde php esta consulta:
Código PHP:
$sqlRec 'SELECT * FROM sessions'
funciona de maravilla, pero no es lo que necesito, lo que necesito es limitarla para que me traiga 10 registros por pagina, pero cuando ejecuto esta consulta:
Código PHP:
$sqlRec 'SELECT * FROM sessions limit :starting, :nrecord'
simplemente no trae nada, no obstante si le quito el segundo parametro que es nrecord, empieza a paginar en 0, en la segunda hoja trae 10 registros, en la tercera trae 20 y asi sucesivamente.
Este es mi codigo de PDO y HTML:
Código PHP:
<?php 

          
if (!$_GET) {
               
header('Location:ordinaryConsultant.php?page=1');
              }
$record_by_page 10;
$total_records $sentence->rowCount();
$page $total_records/10;
$page ceil($page);
              
$starting = ($_GET['page']-1)*$record_by_page;

                    
$sqlRec 'SELECT * FROM sessions limit :starting, :nrecord';
                    
$sentenceRec $pdo->prepare($sqlRec);
                    
$sentenceRec->bindParam(':starting'$startingPDO::PARAM_INT);
                    
$sentenceRec->bindParam(':nrecord'$record_by_pagePDO::PARAM_INT);
                    
$sentenceRec->execute();
                    
$resultRec $sentenceRec->fetchAll();
                    
         
?>
            <div class="registros" id='agrega-registros' style="background-color: #35889936;">
              <?php foreach ($resultRec as $fila): ?>
            <div class='registros' style='background-color: #35889936; color: #FFF;'>
              <?php echo $fila['0'];  ?>
            </div>
              <?php endforeach ?>
            </div>
Por adelantado les doy las gracias y espero me puedan ayudar
la sintaxis suele variar, te leiste los ejemplos de Limit de Postgres?? recuerda que cada version puede agregar o no tener carcateristicas de la version de l servidor a la de tu local,
https://www.postgresql.org/docs/9.3/queries-limit.html

segun su manual,

$sqlRec = 'SELECT * FROM sessions limit :starting, :nrecord';
$sentenceRec = $pdo->prepare($sqlRec);
$sentenceRec->bindParam(':starting', $starting, PDO::PARAM_INT);
$sentenceRec->bindParam(':nrecord', $record_by_page,

deberia ser
$sqlRec = 'SELECT * FROM sessions limit :nrecord OFFSET :starting';
$sentenceRec = $pdo->prepare($sqlRec);
$sentenceRec->bindParam(':starting', $starting, PDO::PARAM_INT);
$sentenceRec->bindParam(':nrecord', $record_by_page,
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9