Foros del Web » Programando para Internet » PHP »

paginador echo mysql mudarlo mysqli

Estas en el tema de paginador echo mysql mudarlo mysqli en el foro de PHP en Foros del Web. hola como estan amigos. Compre un libro de php y traía un disco del autor y tenia una aplicación para hacer paginación pero esta echo ...
  #1 (permalink)  
Antiguo 11/06/2013, 22:21
Avatar de freddy31DA  
Fecha de Ingreso: junio-2012
Mensajes: 84
Antigüedad: 11 años, 10 meses
Puntos: 2
paginador echo mysql mudarlo mysqli

hola como estan amigos. Compre un libro de php y traía un disco del autor y tenia una aplicación para hacer paginación pero esta echo con la extensión mysql lo e tratado de modificarlo a mudarlo ya con extensión mysqli pero tengo un fallo
archivo conexion.php todo bien.

Código PHP:
<?php

/*
 * Retorna el enlace de la conexión con el servidor.
 * Si existe error en la conexión retorna FALSE.
 * A través del parametro $msg retorna el mensaje de error.
*/
function fnConnect( &$msg){
    
$cn=mysqli_connect("localhost","root","mipass","paginacion");
    if( !
$cn ){
        echo  
"Error en la conexión";
        }
    }
/*
 * Imprime una cadena, similar a echo().
*/
function say($cad){
    echo 
$cad "\n";
}

/*
 * Construye un mensaje en una tabla, le debemos
 * pasar el titulo y el mensaje.
*/
function fnShowMsg($title,$msg){
    
say("<table width='250'>");
    
say("<tr>");
    
say("<th align=center valign=middle>$title</th>");
    
say("</tr>");
    
say("<tr>");
    
say("<td align=left valign=middle>$msg</td>");    
    
say("</tr>");
    
say("</table>");
}

/*
 * Construye un enlace utilizando la etiqueta A.
*/
function fnLink($link,$target,$msg){
    
$cad "<A href='$link' target='$target'>$msg</A>";
    return 
$cad;
}

?>
ARCHIVO EN DONDE SE EJECUTA LA PAGINACION
al ejecutarlo dice que tengo un error en la linea 14 e comentado los cambios.

Código PHP:
<?php
require( "conexion.php" );
// Parámetros de Paginación
$pagesize 5// Tamaño de la página
$pageno 1;   // Página por defecto
// Verificar si se está consultando una página en particular
if( isset($_GET["pageno"]) ) {
    
$pageno $_GET["pageno"];
}
// Conexión con la base de datos
$cn fnConnect$msg );
// Determinando el número de páginas
$sql "select count(*) from registros ";
$rs $cn->query($sql); //ANTES ERA ASI: $rs = mysql_query( $sql, $cn );
$rows mysqli_result$rs0); //Aqui le agregue la i a mysql_result
$pages ceil$rows $pagesize ); // Cantidad de paginas
// Obteniendo los registros a mostrar
$dezp = ($pageno 1) * $pagesize;
$sql "select id, nombre, apellido ";
$sql .= "from registros limit $dezp, $pagesize";
$listado $cn->query($sql); //ANTES ERA ASI : mysql_query( $sql, $cn );
?>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <link rel="stylesheet" href="estilo.css" type="text/css"/>
        <title>Consulta de Empleados</title>
    </head>
    <body>
        <h1>Paginación</h1>
        <h2>Listado de Empleados</h2>
        <p>Páginas:
            <?php
            
for( $i 1$i <= $pages$i++ ) {
                if(
$i != $pageno) {
                    
$link fnLink("ejm07.php?pageno=$i""""$i");
                } else {
                    
$link $i;
                }
                
say"$link " );
            }
            
?>
        </p>
        <table width="561" border='1'>
            <tr>
                <th width="72">id</th>
                <th width="130">nombre</th>
                <th width="130">apellido</th>
                
            </tr>
            <?php while( $rec mysqli_fetch_assoc($listado) ) { 
/*ANTES ERA mysql_fetch_assoc LE agregue la i a esta función para traer los registros*/

                
?>
            
            <tr>
                <td><?php echo( $rec["id"] ) ?></td>
                <td><?php echo( $rec["nombre"] ) ?></td>
                <td><?php echo( $rec["apellido"] ) ?></td>
                
            </tr>
            <?php ?>
        </table>
    </body>
</html>
Al ejecutar la paginación me lanza este error:
Fatal error: Call to a member function query() on a non-object in C:\xampp\htdocs\www\php\basico\16_MySQL\3_paginaci on\ejm07.php on line 14

no logro solucionarlo alguna sugerencia gracias compañeros.
  #2 (permalink)  
Antiguo 11/06/2013, 22:44
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: paginador echo mysql mudarlo mysqli

Hola colega.

Yo te propongo una solución mucho más sencilla

connect.php

Código PHP:
Ver original
  1. <?php
  2.  
  3. class connection{
  4.     public $mysqli;
  5.    
  6.     public function __construct() {
  7.         $this->mysqli = new mysqli('server','username','password','database_name');
  8.        
  9.         if($this->mysqli) return $this->mysqli;
  10.         else throw new Exception('Error al conectar');
  11.     }
  12.  
  13.     public function disconnect(){
  14.         $this->mysqli->close();
  15.     }
  16. }
  17.  
  18.  
  19.  
  20. // Conexión con la base de datos
  21. $mysqli = new Connection;
  22.  
  23. $pagesize = 5; // Tamaño de la página
  24. $pageno = 1;   // Página por defecto
  25. // Verificar si se está consultando una página en particular
  26. if( isset($_GET["pageno"]) ) {
  27.     $pageno = $_GET["pageno"];
  28. }
  29.  
  30. // Determinando el número de páginas
  31. $sql = "select count(*) as num_registry from registros ";
  32. $rs = $mysqli->query($sql);
  33. $rows = $rs->fetch_assoc(); //Aqui le agregue la i a mysql_result
  34. $pages = ceil( $rows['num_registry'] / $pagesize ); // Cantidad de paginas
  35. // Obteniendo los registros a mostrar
  36. $dezp = ($pageno - 1) * $pagesize;
  37. $sql = "select id, nombre, apellido ";
  38. $sql .= "from registros limit $dezp, $pagesize";
  39. $listado = $mysqli->query($sql); //ANTES ERA ASI : mysql_query( $sql, $cn );
  40.  
  41. ?>
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.

Etiquetas: mysqli, paginacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:10.