Esempio n. 1
0
 /** Faz a paginação de resultados do banco de dados
  * @param $table
  * @param $page
  * @param $quantity
  * @param $order_by_column
  * @param $maxlinks
  * @param string $order_by_type
  * @return array
  */
 public static function paginator($table, $page, $quantity, $order_by_column, $maxlinks, $order_by_type = 'DESC')
 {
     $start = $quantity * $page - $quantity;
     $result = [];
     $result['result'] = Database::query("SELECT * FROM {$table} ORDER BY {$order_by_column} {$order_by_type}\n                   LIMIT {$start},{$quantity}")->fetchAll();
     $total = Database::select("SELECT * FROM {$table}")->fetchAll();
     $total = count($total);
     $result['totalpages'] = ceil($total / $quantity);
     $inicio = $page - $maxlinks > 1 ? $page - $maxlinks : 1;
     $fim = $page + $maxlinks < $result['totalpages'] ? $page + $maxlinks : $result['totalpages'];
     if ($result['totalpages'] > 1 && $page <= $result['totalpages']) {
         for ($i = $inicio; $i <= $fim; $i++) {
             $result['links'][] = $i;
         }
     }
     $result['current'] = (int) $page;
     $result['prev'] = $result['current'] > 1 ? $result['current'] - 1 : $result['current'];
     $result['next'] = count($result['result']) >= $quantity ? $result['current'] + 1 : $result['current'];
     $result['maxlinks'] = (int) $maxlinks;
     return (object) $result;
 }
Esempio n. 2
0
 /** Lista apenas um user
  * @param $sql
  * @param $bindValue
  * @return mixed
  */
 public static function getUser($bindValue)
 {
     return Database::select("SELECT * FROM user WHERE id = :id", $bindValue)->fetch();
 }
Esempio n. 3
0
 /**
  * Atualiza a nova senha do usuário
  * @param $password
  * @param $token
  * @return bool
  */
 public static function updateRecover($password, $token)
 {
     return Database::query("UPDATE user as u INNER JOIN user_recovery_password as r ON u.id = r.user_id SET\n             u.password = '******',r.password_change_date = NOW(),r.status = 1\n             WHERE r.token = '" . $token . "'");
 }