Hola que tal, hace poco cree una clase para hacer una paginacion en php, pero me encuentro con un error , les paso la clase la forma de uso y el error.
Código PHP:
Ver original# Mysql
class Cm_mysql{
# Conexion
public function Conectar(){
}
# Consulta
public function Consulta($Consulta){
}
# Reg_Num
public function Reg_Num($Consulta){
}
# Assoc
public function Assoc($Consulta){
}
# String Search
public function Con_Like($Consulta,$Por,$Text){
return mysql_query($Consulta.' WHERE '.$Por.' LIKE '.'"'.$Text.'"');
}
}
# Paginador
class Cm_Paginador{
# Configuracion
private $Posicion = NULL;
private $Estructura = NULL;
private $Mysql = NULL;
private $Consulta = NULL;
private $Paginas = NULL;
# Mysql
public function _Mysql($Mysql,$base,$article,$orden,$Posicion){
# Mysql
$this->Mysql = $Mysql; $Mysql->Conectar(); $this->Posicion = $Posicion;
$Query = "SELECT * FROM ".($base);
$Exect = $Mysql->Consulta($Query);
# --- Condicionales
$Cant = $Mysql->Reg_Num($Exect);
$this->Paginas = ceil($Cant/$article); $Desde = $Posicion*$this->Paginas;
# --- Consulta
$this->Consulta = $Mysql->Consulta($Query.' ORDER BY id '.$orden.' LIMIT '.$Desde.' , '.$Cant);
}
# --- Estructura
public function _Estructure($estructure){
$this->Estructura = $estructure;
}
# --- Devolucion
public function _Devolucion(){
while($Campo = $this->Mysql->Assoc($this->Consulta)){
$str = $this->Estructura;
foreach($Campo as $clave => $valor) {
}
echo $str;
}
}
# --- Navegacion
public function _Navegacion($botones){
if(($botones)>=3){
// next
if((($this->Posicion)+1)>1 && ($this->Paginas)>1){
echo '<input type="button" onClick="Paginacion('.($this-Posicion).')" value="<">';
}
// numbers
for($i = 1;$i<$botones;$i++){
if($i<$this->Paginas){
echo '<input type="button" value="'.$i.'" onClick="Paginacion('.$i.')">';
}
}
// prev
if((($this->Posicion)+1)<($this->Paginas)){
echo '<input type="button" onClick="Paginacion('.(($this->Posicion)+2).')" value=">">';
}
}
if(($botones)<=2){
// next
if((($this->Posicion+1))>1 && ($this->Paginas)>1){
echo '<input type="button" onClick="Paginacion('.($this->Posicion).')" value=">">';
}
// prev
if((($this->Posicion)+1)<($this->Paginas)){
echo '<input type="button" onClick="Paginacion('.(($this->Posicion)+2).')" value="<">';
}
}
}
}
Código PHP:
Ver original# Framework
include("Cm_Framework.php");
# Variables
$Convert = new Cm_Convert;
#Datos
$Page = $Convert->ParseValInt(trim($_POST['Page']));
# Paginador
$Paginador = new Cm_Paginador;
$Paginador->_Mysql(new Cm_mysql,'Eventos',5,'DESC',$Page);
$Paginador->_Estructure('<article class="Eventos"><i><img src="Content/Eventos/{Flyer}"></i><h1>{Titulo}</h1><p>{Info}</p><a href="/Eventos/{Slug}/">[+INFO]</a></article>');
$Paginador->_Devolucion();
echo '<article class="Paginacion">';
$Paginador->_Navegacion(5);
echo '</article>';
Código Javascript
:
Ver original/// ---- Paginacion eventos
function Paginacion(pag){
// -- Cargar eventos
$('section.Eventos').load('Include/Eventos.php',{'Page':pag});
}
Código PHP:
Ver originalNotice
: Use of undefined
constant Posicion
- assumed
'Posicion' in C
:\xampp\htdocs\Levr\
Include\Cm_Framework
.php on line
519
Notice: Object of class Cm_Paginador could not be converted to int in C:\xampp\htdocs\Levr\Include\Cm_Framework.php on line 519
se que el error esta en la var posicion, pero yo veo a mi entendimiento que la estoy usando perfectamente :_.
[+INFO] El error solo me aparece si cambio de resultados, osea, paso de la pagina 1 a la 2 , los resultados si me los da, pero al final me devuelve el error :S
Grafico:
• Pag 1 = Resultados ok.
• Pag 2 = Resultados ok + error :S
Cualquier consejo, aporte, o solucion al problema sera de mucha ayuda , desde ya gracias :D
SOLUCIONADO:
Código PHP:
Ver original// next
if((($this->Posicion)+1)>1 && ($this->Paginas)>1){
echo '<input type="button" onClick="Paginacion('.($this-Posicion).')" value="<">';
}
Por:
Código PHP:
Ver original// next
if((($this->Posicion)+1)>1 && ($this->Paginas)>1){
echo '<input type="button" onClick="Paginacion('.($this->Posicion).')" value="<">';
}
Se me olvido el ">" xD perdon :_