Edición de «Como Programar Consultas Paginadas en KumbiaPHP»
De KumbiaPHP Framework Wiki
Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces guarda los cambios para así efectuar la reversión.
Revisión actual | Tu texto | ||
Línea 1: | Línea 1: | ||
− | Tomado del ejemplo: [[Como Programar Consultas Paginadas en KUMBIAPHP]] | + | Tomado del ejemplo: [[Como Programar Consultas Paginadas en KUMBIAPHP]] Aun si probar. |
− | |||
− | |||
− | |||
− | |||
− | |||
'''DDL para PostgreSQL''' | '''DDL para PostgreSQL''' | ||
<source lang='sql'> | <source lang='sql'> | ||
− | + | -- DDL para PostgreSQL | |
− | CREATE TABLE | + | CREATE TABLE Pais |
( | ( | ||
Id serial, | Id serial, | ||
Línea 17: | Línea 12: | ||
Codigo char(2) UNIQUE NOT NULL, | Codigo char(2) UNIQUE NOT NULL, | ||
Nombre character varying(100) NOT NULL, | Nombre character varying(100) NOT NULL, | ||
− | |||
Activ boolean DEFAULT true | Activ boolean DEFAULT true | ||
); | ); | ||
− | CREATE TABLE | + | CREATE TABLE Departamento |
( | ( | ||
Id serial, | Id serial, | ||
Línea 31: | Línea 25: | ||
); | ); | ||
− | CREATE TABLE | + | CREATE TABLE Ciudad |
( | ( | ||
Id bigserial, | Id bigserial, | ||
Línea 46: | Línea 40: | ||
''' Modelo: pais.php ''' | ''' Modelo: pais.php ''' | ||
− | |||
<source lang='php'> | <source lang='php'> | ||
<?php | <?php | ||
class Pais extends ActiveRecord { | class Pais extends ActiveRecord { | ||
− | |||
public function getPaises($page, $ppage=25) | public function getPaises($page, $ppage=25) | ||
{ | { | ||
Línea 65: | Línea 57: | ||
''' Modelo: departamento.php ''' | ''' Modelo: departamento.php ''' | ||
− | |||
<source lang='php'> | <source lang='php'> | ||
<?php | <?php | ||
class Departamento extends ActiveRecord { | class Departamento extends ActiveRecord { | ||
− | |||
public function getDepartamentosPais($page, $paisid, $ppage=25) | public function getDepartamentosPais($page, $paisid, $ppage=25) | ||
{ | { | ||
Línea 88: | Línea 78: | ||
''' Modelo: ciudad.php ''' | ''' Modelo: ciudad.php ''' | ||
− | |||
<source lang='php'> | <source lang='php'> | ||
<?php | <?php | ||
class Ciudad extends ActiveRecord { | class Ciudad extends ActiveRecord { | ||
− | |||
public function getCiudadesPais($page, $paisid, $ppage=25) | public function getCiudadesPais($page, $paisid, $ppage=25) | ||
{ | { | ||
Línea 106: | Línea 94: | ||
− | + | '''Controlador: consultarpaises_controller.php''' | |
− | |||
− | |||
− | |||
− | |||
− | '''Controlador: | ||
− | |||
<source lang='php'> | <source lang='php'> | ||
<?php | <?php | ||
− | Load::models('ciudad', 'pais'); | + | Load::models('ciudad', 'departamento', 'pais'); |
− | class | + | class ConsultarPaisesController extends ApplicationController { |
− | + | public function index($page=1) | |
− | + | { | |
− | + | $pais = new Pais(); | |
− | + | $this->listPaises = $pais->getPaises($page); | |
− | + | } | |
− | + | public function ciudades($page=1, $paisid=48) | |
− | + | { | |
− | + | $paises = new Pais(); | |
− | + | $this->nombredelpais = $paises->getNombre($paisid); | |
− | + | $ciudadespais = new Ciudad(); | |
− | + | $this->listCiudadesPais = $ciudadespais->getCiudadesPais($page, $paisid); | |
− | + | } | |
+ | |||
+ | public function departamentos($page=1, $paisid=48) | ||
+ | { | ||
+ | $paises = new Pais(); | ||
+ | $this->nombredelpais = $paises->getNombre($paisid); | ||
+ | $departamentospais = new Departamento(); | ||
+ | $this->listDepartamentosPais = $departamentospais->getDepartamentosPais($page, $paisid); | ||
+ | } | ||
} | } | ||
− | ?> | + | ?></source> |
+ | |||
+ | ''' Vista: views/consultarpaises/index.phtml ''' | ||
+ | <source lang='php'> | ||
+ | <div class="content"> | ||
+ | <?php echo View::content();?> | ||
+ | <h3>Paises</h3> | ||
+ | <ul> | ||
+ | <?php foreach ($listPaises->items as $item):?> | ||
+ | <li> | ||
+ | <?php if ($item->id == 48) echo Html::link("consultarpaises/departamentos/1/$item->id", $item->codigo); else echo Html::link("consultarpaises/ciudades/1/$item->id", $item->codigo);?> - <?php echo $item->nombre?> | ||
+ | </li> | ||
+ | <?php endforeach;?> | ||
+ | </ul> | ||
+ | <?php if($listPaises->prev) echo Html::linkAction("index/$listPaises->prev/", '<< Anterior |');?> | ||
+ | <?php if($listPaises->next) echo Html::linkAction("index/$listPaises->next/", 'Próximo >>');?> | ||
+ | </div> | ||
</source> | </source> | ||
− | + | ''' Vista: views/consultarpaises/ciudades.phtml''' | |
− | ''' Vista: | ||
− | |||
<source lang='php'> | <source lang='php'> | ||
<div class="content"> | <div class="content"> | ||
− | + | <?php echo View::content();?> | |
− | + | <h3>Ciudades de <?php echo $nombredelpais;?></h3> | |
− | + | <ul> | |
− | + | <?php foreach ($listCiudadesPais->items as $item):?> | |
− | + | <li> | |
− | + | <?php if ($item->codigo == " ") echo "ZZZ"; else echo $item->codigo;?> - <?php echo $item->nombre;?> | |
− | + | </li> | |
− | + | <?php endforeach;?> | |
− | + | </ul> | |
− | + | <?php if($listCiudadesPais->prev) echo Html::linkAction("ciudades/$listCiudadesPais->prev/$item->pais_id/", '<< Anterior |');?> | |
− | + | <?php if($listCiudadesPais->next) echo Html::linkAction("ciudades/$listCiudadesPais->next/$item->pais_id/", 'Próximo >>');?> | |
</div> | </div> | ||
</source> | </source> | ||
− | + | ''' Vista: views/consultarpaises/departamentos.phtml''' | |
− | ''' Vista: | ||
− | |||
<source lang='php'> | <source lang='php'> | ||
<div class="content"> | <div class="content"> | ||
− | + | <?php echo View::content();?> | |
− | + | <h3>Departamentos de <?php echo $nombredelpais;?></h3> | |
− | + | <ul> | |
− | + | <?php foreach ($listDepartamentosPais->items as $item):?> | |
− | + | <li> | |
− | + | <?php echo Html::link("consultardepartamentos/index/1/$item->id", str_pad($item->codigonumerico, 2, "0", STR_PAD_LEFT));?> - <?php echo $item->nombre;?> | |
− | + | </li> | |
− | + | <?php endforeach;?> | |
− | + | </ul> | |
− | + | <?php if($listDepartamentosPais->prev) echo Html::linkAction("departamentos/$listDepartamentosPais->prev/$item->pais_id/", '<< Anterior |');?> | |
− | + | <?php if($listDepartamentosPais->next) echo Html::linkAction("departamentos/$listDepartamentosPais->next/$item->pais_id/", 'Próximo >>');?> | |
</div> | </div> | ||
</source> | </source> | ||
− | ''' Controlador: | + | ''' Controlador: consultardepartamentos_controller.php ''' |
− | |||
<source lang='php'> | <source lang='php'> | ||
<?php | <?php | ||
Load::models('ciudad', 'departamento', 'pais'); | Load::models('ciudad', 'departamento', 'pais'); | ||
− | class | + | class ConsultarDepartamentosController extends ApplicationController { |
− | + | public function index($page=1, $departamentoid=15) | |
− | + | { | |
− | + | $departamentos = new Departamento(); | |
− | + | $this->nombredeldepartamento = $departamentos->getNombre($departamentoid); | |
− | + | $this->idpais = $departamentos->getIdPais($departamentoid); | |
− | + | $paises = new Pais(); | |
− | + | $this->nombredelpais = $paises->getNombre($this->idpais); | |
− | + | $ciudadesdepartamento = new Ciudad(); | |
− | + | $this->listCiudadesDepartamento = $ciudadesdepartamento->getCiudadesDepartamento($page, $departamentoid); | |
− | + | } | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
?> | ?> | ||
Línea 201: | Línea 195: | ||
− | ''' Vista: | + | ''' Vista: views/consultardepartamentos/index.phtml''' |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<source lang='php'> | <source lang='php'> | ||
<div class="content"> | <div class="content"> | ||
− | + | <?php echo View::content();?> | |
− | + | <h3>Ciudades de <?php echo $nombredeldepartamento;?> - <?php echo $nombredelpais;?></h3> | |
− | + | <ul> | |
− | + | <?php foreach ($listCiudadesDepartamento->items as $item):?> | |
− | + | <li> | |
− | + | <?php if ($item->codigo == " ") echo "ZZZ"; else echo $item->codigo;?> - <?php echo str_pad($item->codigonumerico, 3, "0", STR_PAD_LEFT);?> - <?php echo $item->nombre;?> | |
− | + | </li> | |
− | + | <?php endforeach;?> | |
− | + | </ul> | |
− | + | <?php if($listCiudadesDepartamento->prev) echo Html::linkAction("index/$listCiudadesDepartamento->prev/$item->departamento_id/", '<< Anterior |');?> | |
− | + | <?php if($listCiudadesDepartamento->next) echo Html::linkAction("index/$listCiudadesDepartamento->next/$item->departamento_id/", 'Próximo >>');?> | |
</div> | </div> | ||
</source> | </source> |