Por favor alguém poderia me enviar um código de uma função em php que retorne 2 valores. Obrigado. Ari.
Por favor alguém poderia me enviar um código de uma função em php que retorne 2 valores. Obrigado. Ari.
Você não pode retornar dois valores ao mesmo tempo. Mas você pode retornar um array que contenha dois valores.
return array($valor1,$valor2);
Juliano boa noite. Como eu faço depois fora da função para pegar esses valores?
Tenho a função: function parametrosPaginacao(){
//Verificar se está sendo passado na URL a página atual, senao é atribuido a pagina $pagina = (isset($_GET['pagina']))? $_GET['pagina'] : 1;
//Selecionar todos as contas da tabela $result_conta = "select * from copag where copag_ano = {$ano} and copag_mes = {$mes}"; $resultado_conta = mysqli_query($this->conexao, $result_conta);
//Contar o total de contas $total_contas = mysqli_num_rows($resultado_conta);
//Seta a quantidade de contas por pagina $quantidade_pg = 9;
//calcular o número de pagina necessárias para apresentar os contas $num_paginas = ceil($total_contas/$quantidade_pg);
//Calcular o inicio da visualizacao $incio = ($quantidade_pg*$pagina)-$quantidade_pg;
return array($total_contas,$quantidade_pg,$inicio); }
Obrigado, Ari.
$arr = array($total_contas,$quantidade_pg,$inicio);
$total_contas = $arr[0];
$quantidade = $arr[1];
$inicio = $arr[2];
Uma outra forma de receber os dados da função é usando a função list do php http://php.net/list, ele recebe o array e atribui nas variáveis que você define:
list($total_contas, $quantidade_pg, $inicio) = parametrosPaginacao();
Juliano a Alex obrigado pela ajuda.
Juliano e Alex boa tarde.
Não consegui sucesso no que vocês me passaram, mas o que eu preciso exatamente é o seguinte:
Tenho a classe ContaDao e dentro desta classe tenho duas funções parametrosPaginacao() e listaContas($mes, $ano).
Na função listaContas uso 2 variavies da função parametrosPaginacao(), gostaria de saber como pegar os valores das variáveis $inicio e $quantidade_pg.
Segue o codigo da classe:
<?php class ContaDao{
private $conexao;
function parametrosPaginacao(){
//Verificar se está sendo passado na URL a página atual, senao é atribuido a pagina $pagina = (isset($_GET['pagina']))? $_GET['pagina'] : 1;
//Selecionar todos as contas da tabela $result_conta = "select * from copag where copag_ano = {$ano} and copag_mes = {$mes}"; $resultado_conta = mysqli_query($this->conexao, $result_conta);
//Contar o total de contas $total_contas = mysqli_num_rows($resultado_conta);
//Seta a quantidade de contas por pagina $quantidade_pg = 9;
//calcular o número de pagina necessárias para apresentar os contas $num_paginas = ceil($total_contas/$quantidade_pg);
//Calcular o inicio da visualizacao $inicio = ($quantidade_pg*$pagina)-$quantidade_pg;
}
function listaContas($mes, $ano){
$listaDeContas = array();
$resultado = mysqli_query($this->conexao, "SELECT c.copag_id, c.copag_mes, c.copag_ano, c.copag_dt_vencto, c.copag_descricao, c.copag_valor, c.copag_nr_doc, c.copag_parcela, c.tipopagto_id, t.tipopagto_descricao, CASE c.copag_status WHEN 'P' THEN 'Pago' ELSE 'Em Aberto' END as copag_status FROM copag c, tipopagto t WHERE c.tipopagto_id = t.tipopagto_id AND c.copag_ano = {$ano} AND c.copag_mes = {$mes} ORDER BY c.copag_dt_vencto limit {$inicio}, {$quantidade_pg}");
while ($conta_array = mysqli_fetch_assoc($resultado)) { $conta = new Conta(); $tipopagto = new TipoPagto(); $tipopagto->tipopagto_descricao = $conta_array['tipopagto_descricao'];
$conta->copag_id = $conta_array['copag_id']; $conta->copag_mes = $conta_array['copag_mes']; $conta->copag_ano = $conta_array['copag_ano']; $conta->copag_dt_vencto = $conta_array['copag_dt_vencto']; $conta->copag_descricao = $conta_array['copag_descricao']; $conta->copag_valor = $conta_array['copag_valor']; $conta->copag_nr_doc = $conta_array['copag_nr_doc']; $conta->copag_parcela = $conta_array['copag_parcela']; $conta->tipopagto = $tipopagto; $conta->copag_status = $conta_array['copag_status'];
array_push($listaDeContas, $conta); } return $listaDeContas; }
} ?>
Olá Ari, na função parametrosPaginacao você tem que retornar os dados desejados em forma de array.
A função listaContas deve chamar a função parametrosPaginacao e receber seu retorno, você pode usar esses dados da forma que o Juliano Fischer disse ou usar a função list do php (http://php.net/list) para atribuir o retorno nas variáveis que desejar.
Segue o ajuste no código:
<?php
class ContaDao
{
private $conexao;
function parametrosPaginacao($ano, $mes)
{
// Verificar se está sendo passado na URL a página atual, senao é atribuido a pagina
$pagina = (isset($_GET['pagina'])) ? $_GET['pagina'] : 1;
// Selecionar todos as contas da tabela
$result_conta = "select * from copag where copag_ano = {$ano} and copag_mes = {$mes}";
$resultado_conta = mysqli_query($this->conexao, $result_conta);
// Contar o total de contas
$total_contas = mysqli_num_rows($resultado_conta);
// Seta a quantidade de contas por pagina
$quantidade_pg = 9;
// calcular o número de pagina necessárias para apresentar os contas
$num_paginas = ceil($total_contas / $quantidade_pg);
// Calcular o inicio da visualizacao
$inicio = ($quantidade_pg * $pagina) - $quantidade_pg;
return [$inicio, $quantidade_pg];
}
function listaContas($mes, $ano)
{
list($inicio, $quantidade_pg) = $this->parametrosPaginacao($ano, $mes);
$listaDeContas = array();
$resultado = mysqli_query($this->conexao,
"SELECT c.copag_id, c.copag_mes, c.copag_ano, c.copag_dt_vencto, c.copag_descricao, c.copag_valor, c.copag_nr_doc, c.copag_parcela, c.tipopagto_id, t.tipopagto_descricao, CASE c.copag_status WHEN 'P' THEN 'Pago' ELSE 'Em Aberto' END as copag_status
FROM copag c, tipopagto t
WHERE c.tipopagto_id = t.tipopagto_id AND c.copag_ano = {$ano}
AND c.copag_mes = {$mes}
ORDER BY c.copag_dt_vencto limit {$inicio}, {$quantidade_pg}"
);
while ($conta_array = mysqli_fetch_assoc($resultado)) {
$conta = new Conta();
$tipopagto = new TipoPagto();
$tipopagto->tipopagto_descricao = $conta_array['tipopagto_descricao'];
$conta->copag_id = $conta_array['copag_id'];
$conta->copag_mes = $conta_array['copag_mes'];
$conta->copag_ano = $conta_array['copag_ano'];
$conta->copag_dt_vencto = $conta_array['copag_dt_vencto'];
$conta->copag_descricao = $conta_array['copag_descricao'];
$conta->copag_valor = $conta_array['copag_valor'];
$conta->copag_nr_doc = $conta_array['copag_nr_doc'];
$conta->copag_parcela = $conta_array['copag_parcela'];
$conta->tipopagto = $tipopagto;
$conta->copag_status = $conta_array['copag_status'];
array_push($listaDeContas, $conta);
}
return $listaDeContas;
}
}