gedmilson 5 Denunciar post Postado Abril 20, 2018 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
Gabriel Heming 766 Denunciar post Postado Abril 20, 2018 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
gedmilson 5 Denunciar post Postado Abril 20, 2018 Eu quero enumerar a quantidade de usuários que tenha determinada permissão. Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Abril 20, 2018 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
gedmilson 5 Denunciar post Postado Abril 20, 2018 Estou usando PDO e php orientado a objetos; Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Abril 20, 2018 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
gedmilson 5 Denunciar post Postado Abril 20, 2018 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