<?php
// Controlamos los datos recibidos para paginar
$page = isset ( $_GET [ 'page' ] ) ?
( int
) $_GET [ 'page' ] : 1 ; if ( $page < 1 ) $page = 1 ;
$records_by_page = isset ( $_GET [ 'amount_show' ] ) ?
( int
) $_GET [ 'amount_show' ] : 10 ; if ( $records_by_page < 10 ) $records_by_page = 10 ;
$limit_from = ( $page - 1 ) * $records_by_page ;
// Inicializamos el arreglo de respuesta.
$response = [
'records' => [ ] ,
'current_page' => $page ,
'records_by_page' => $records_by_page ,
'total_recors' => 0 ,
] ;
$stmtT = $con -> prepare ( "SELECT COUNT(*) AS total FROM users" ) ;
$stmtT -> execute ( ) ;
$stmtT -> bind_result ( $total ) ;
while ( $stmtT -> fetch ( ) ) {
$response [ 'total_recors' ] = $total ;
}
$stmt = $con -> prepare ( "SELECT id_user,
id_customer,
name,
email,
rol,
register_date
FROM users
ORDER BY id_user DESC LIMIT $limit_from , $records_by_page " ) ;
$stmt -> execute ( ) ;
$stmt -> store_result ( ) ;
$stmt -> bind_result ( $id_user , $id_customer , $name , $email , $rol , $register_date ) ;
while ( $stmt -> fetch ( ) ) {
$response [ 'records' ] [ ] = [
'id_user' => $id_user ,
'name' => $name ,
'id_customer' => $id_customer ,
'email' => $email ,
'rol' => $rol ,
'register_date' => $register_date
] ;
}
$stmt -> close ( ) ;
header ( 'Content-Type: application/json' ) ;
PD9waHAKCgkvLyBDb250cm9sYW1vcyBsb3MgZGF0b3MgcmVjaWJpZG9zIHBhcmEgcGFnaW5hcgoJJHBhZ2UgPSBpc3NldCgkX0dFVFsncGFnZSddKSA/IChpbnQpICRfR0VUWydwYWdlJ10gOiAxOwoJaWYgKCRwYWdlIDwgMSkgJHBhZ2UgPSAxOwoJJHJlY29yZHNfYnlfcGFnZSA9IGlzc2V0KCRfR0VUWydhbW91bnRfc2hvdyddKSA/IChpbnQpICRfR0VUWydhbW91bnRfc2hvdyddIDogMTA7CglpZiAoJHJlY29yZHNfYnlfcGFnZSA8IDEwKSAkcmVjb3Jkc19ieV9wYWdlID0gMTA7CgoJJGxpbWl0X2Zyb20gPSAoJHBhZ2UgLSAxKSAqICRyZWNvcmRzX2J5X3BhZ2U7CgoJLy8gSW5pY2lhbGl6YW1vcyBlbCBhcnJlZ2xvIGRlIHJlc3B1ZXN0YS4KCSRyZXNwb25zZSA9IFsKCQkncmVjb3JkcycgPT4gW10sCgkJJ2N1cnJlbnRfcGFnZScgPT4gJHBhZ2UsCgkJJ3JlY29yZHNfYnlfcGFnZScgPT4gJHJlY29yZHNfYnlfcGFnZSwKCQkndG90YWxfcmVjb3JzJyA9PiAwLAoJXTsKCgoJJHN0bXRUPSRjb24tPnByZXBhcmUoIlNFTEVDVCBDT1VOVCgqKSBBUyB0b3RhbCBGUk9NIHVzZXJzIik7Cgkkc3RtdFQtPmV4ZWN1dGUoKTsKCSRzdG10VC0+YmluZF9yZXN1bHQoJHRvdGFsKTsKCXdoaWxlKCRzdG10VC0+ZmV0Y2goKSkgewoJCSRyZXNwb25zZVsndG90YWxfcmVjb3JzJ10gPSAkdG90YWw7Cgl9CgoJJHN0bXQgPSAkY29uLT5wcmVwYXJlKCJTRUxFQ1QgaWRfdXNlciwKCQkJCQkJCQkJaWRfY3VzdG9tZXIsCgkJCQkJCQkJCW5hbWUsCgkJCQkJCQkJCWVtYWlsLAoJCQkJCQkJCQlyb2wsCgkJCQkJCQkJCXJlZ2lzdGVyX2RhdGUKCQkJCQkJCQlGUk9NIHVzZXJzCgkJCQkJCQkJT1JERVIgQlkgaWRfdXNlciBERVNDIExJTUlUICRsaW1pdF9mcm9tLCAkcmVjb3Jkc19ieV9wYWdlIik7Cgkkc3RtdC0+ZXhlY3V0ZSgpOwoJJHN0bXQtPnN0b3JlX3Jlc3VsdCgpOwoJJHN0bXQtPmJpbmRfcmVzdWx0KCRpZF91c2VyLCAkaWRfY3VzdG9tZXIsICRuYW1lLCAkZW1haWwsICRyb2wsICRyZWdpc3Rlcl9kYXRlKTsKCgl3aGlsZSgkc3RtdC0+ZmV0Y2goKSkgewoJCSRyZXNwb25zZVsncmVjb3JkcyddW10gPSBbCgkJCSdpZF91c2VyJyA9PiAkaWRfdXNlciwKCQkJJ25hbWUnID0+ICRuYW1lLAoJCQknaWRfY3VzdG9tZXInID0+ICRpZF9jdXN0b21lciwKCQkJJ2VtYWlsJyA9PiAkZW1haWwsCgkJCSdyb2wnID0+ICRyb2wsCgkJCSdyZWdpc3Rlcl9kYXRlJyA9PiAkcmVnaXN0ZXJfZGF0ZQoJCV07Cgl9Cgkkc3RtdC0+Y2xvc2UoKTsKCWhlYWRlcignQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uJyk7CgllY2hvIGpzb25fZW5jb2RlKCRyZXNwb25zZSk7