Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gedmilson

Problemas em enumerar cadastros

Recommended Posts

Estou tentando enumerar a quantidade de vezes que um resultado aparece, em princípio achei que era so fazer desse modo:

   public function RetornarNumPermissao() {
        try {
            $sql = "SELECT COUNT(permissao) FROM usuario WHERE permissao = 1"; //Usuarios PAI e FILHO

            $dt = $this->pdo->ExecuteQuery($sql);
            $listaUsuario = [];

            foreach ($dt as $cat) {
                $usuario = new Usuario();


                $usuario->setPermissao($cat["COUNT(permissao)"]);
            

               $listaUsuario[] = $usuario;
            }

            return $listaUsuario;
        } catch (PDOException $ex) {
            if ($this->debug) {
                echo "ERRO: {$ex->getMessage()} LINE: {$ex->getLine()}";
            }
            return null;
        }
        
    } 

E depois chamar a função dessa forma:

            <?php
                 foreach ($SomarClientes as $scli) {
            ?>
                <b><?php $scli->getPermissao(); ?></b>Empresários cadastrados
            </div>
            <?php } ?> 

Que depois ficaria tudo certo, mas não foi bem assim que funcionou.

Não teve nenhum erro no código indicado, mas também não teve nenhum resultado.

E terminei ficando meio que sem saber o que fazer....

Se alguém poder de dar uma força: - Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

COUNT contará a quantidade de usuários que possuem a permissão setada para 1 (true). O que exatamente você quer fazer?

Pois, o restante não tem nada haver com a quantidade de registros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu não sei qual é a biblioteca que você está usando (o método ExecuteQuery não existe para PDO) fica um pouco difícil de informar qual é a forma de utilizar o comando.

 

Entretanto, quando você usa uma função de agregação (COUNT é uma), a sua consulta retornará apenas um registro.

 

Logo, quando é retornado, seria algo similar a isso:

$sql = "SELECT COUNT(permissao) as total FROM usuario WHERE permissao = 1"; //Usuarios PAI e FILHO

$dt = $this->pdo->ExecuteQuery($sql); 
return $dt[0]['total'];

Visto que eu adicionei o alias "total" na consulta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

PDO não tem o método ExecuteQuery. Você está usando alguma biblioteca que usa PDO.

 

Tente fazer a alteração com o que foi mencionado logo acima e traga-nos o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou lhe passar a biblioteca que estou usando:

<?php

date_default_timezone_set('America/Sao_Paulo');


/**
 * PDO PHP Persistence Class
 * https://github.com/victortassinari/pdophpclass
 *
 *
 * @author Victor Tassinari - victortassinarix@gmail.com
 */
 
class Banco {

    private static $connection;
    private $debug;
    private $server;
    private $user;
    private $password;
    private $database;

    public function __construct() {
        $this->debug = true;
        $this->server = "";
        $this->user = "";
        $this->password = "";
        $this->database = "";
    }

    /**
     * Create a database connection or return the connection already open using Singletion Design Patern
     * @return PDOConnection|null
     */
    public function getConnection() {
        try {
            if (self::$connection == null) {
                self::$connection = new PDO("mysql:host={$this->server};dbname={$this->database};charset=utf8", $this->user, $this->password);
                self::$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                self::$connection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
                self::$connection->setAttribute(PDO::ATTR_PERSISTENT, true);
            }
            return self::$connection;
        } catch (PDOException $ex) {
            if ($this->debug) {
                echo "<b>Error on getConnection(): </b>" . $ex->getMessage() . "<br/>";
            }
            die();
            return null;
        }
    }

    /**
     * Unset connection
     * @return void
     */
    public function Disconnect() {
        $this->connection = null;
    }

    /**
     * Return the last id of insert statement
     * @return int
     */
    public function GetLastID() {
        return $this->getConnection()->lastInsertId();
    }

    /**
     * Start one database transaction
     * @return void
     */
    public function BeginTransaction() {
        return $this->getConnection()->beginTransaction();
    }

    /**
     * Commit changes on opened transaction
     * @return void
     */
    public function Commit() {
        return $this->getConnection()->commit();
    }

    /**
     * Roolback changes on opened transaction
     * @return void
     */
    public function Rollback() {
        return $this->getConnection()->rollBack();
    }

    /**
     * returns the result of a query (select) of only one row
     * @param string $sql the sql string
     * @param array $params the array of parameters (array(":col1" => "val1",":col2" => "val2"))
     * @return one position array for the result of query
     */
    public function ExecuteQueryOneRow($sql, $params = null) {
        try {
            $stmt = $this->getConnection()->prepare($sql);
            $stmt->execute($params);
            return $stmt->fetch(PDO::FETCH_ASSOC);
        } catch (PDOException $ex) {
            if ($this->debug) {
                echo "<b>Error on ExecuteQueryOneRow():</b> " . $ex->getMessage() . "<br />";
                echo "<br /><b>SQL: </b>" . $sql . "<br />";

                echo "<br /><b>Parameters: </b>";
                print_r($params) . "<br />";
            }
            die();
            return null;
        }
    }

    /**
     * returns the result of a query (select)
     * @param string $sql the sql string
     * @param array $params the array of parameters (array(":col1" => "val1",":col2" => "val2"))
     * @return array for the result of query
     */
    public function ExecuteQuery($sql, $params = null) {
        try {
            $stmt = $this->getConnection()->prepare($sql);
            $stmt->execute($params);
            return $stmt->fetchAll(PDO::FETCH_ASSOC);
        } catch (PDOException $ex) {
            if ($this->debug) {
                echo "<b>Error on ExecuteQuery():</b> " . $ex->getMessage() . "<br />";
                echo "<br /><b>SQL: </b>" . $sql . "<br />";

                echo "<br /><b>Parameters: </b>";
                print_r($params) . "<br />";
            }
            die();
            return null;
        }
    }

    /**
     * returns if the query was successful
     * @param string $sql the sql string
     * @param array $params the array of parameters (array(":col1" => "val1",":col2" => "val2"))
     * @return boolean
     */
    public function ExecuteNonQuery($sql, $params = null) {
        try {
            $stmt = $this->getConnection()->prepare($sql);
            return $stmt->execute($params);
        } catch (PDOException $ex) {
            if ($this->debug) {
                echo "<b>Error on ExecuteNonQuery():</b> " . $ex->getMessage() . "<br />";
                echo "<br /><b>SQL: </b>" . $sql . "<br />";

                echo "<br /><b>Parameters: </b>";
                print_r($params) . "<br />";
            }
            die();
            return false;
        }
    }

}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.