Ir para conteúdo
diego.baiao

Logica de programação, array e laços

Recommended Posts

Prezados, boa noite! 

 

Preciso de uma ajuda estou recebendo uma consulta em um array e está quase tudo mastigado na própria consulta do banco, porém tenho que trabalhar no php e fazer uma alteração que não estou conseguindo que é formatar uma saída padrão um array onde cada bloco desse seria um array com a principal coluna "mesano". Estou usando ZF1(zend framework 1) e não consigo usar class teria que fazer um helper mais não entendo bem estou tentando usar no braço usando laços (for, foreach, while, if-else, etc... rs)

Segue abaixo a saída da minha consulta (31 registros):

consultapgsql.jpg.2f8267c1b71221123e5748c193e3ba93.jpg

consultapgsql2.jpg.ed3ce632da854ce6d2a4b70b38b7205c.jpg

 

O Array da consulta listada acima fica conforme informação abaixo:

*** Não coloquei todos foi só para ilustrar minha saída real (abaixo ficou com os dados de maio, abril (2018) e final dezembro(2017) seria o ultimo registro posição do array [31])

 

["data"] => array(6) {
    [0] => array(5) {
        ["mes"] => string(1) "5"
        ["ano"] => string(4) "2018"
        ["mesano"] => string(6) "5/2018"
        ["entregue_sem_confirmacao"] => string(1) "8"
    }
    [1] => array(5) {
        ["mes"] => string(1) "5"
        ["ano"] => string(4) "2018"
        ["mesano"] => string(6) "5/2018"
        ["entregue_com_confirmacao"] => string(1) "1"
    }
    [2] => array(5) {
        ["mes"] => string(1) "4"
        ["ano"] => string(4) "2018"
        ["mesano"] => string(6) "4/2018"
        ["bloqueada"] => string(1) "2"
    }
    [3] => array(5) {
        ["mes"] => string(1) "4"
        ["ano"] => string(4) "2018"
        ["mesano"] => string(6) "4/2018"
        ["cancelada"] => string(2) "12"
    }
    [4] => array(10) {
        ["mes"] => string(1) "4"
        ["ano"] => string(4) "2018"
        ["mesano"] => string(6) "4/2018"
        ["nao_recebida"] => string(3) "207"
    }
    [5] => array(5) {
        ["mes"] => string(1) "4"
        ["ano"] => string(4) "2018"
        ["mesano"] => string(6) "4/2018"
        ["entregue_sem_confirmacao"] => string(3) "552"
    }
    [6] => array(5) {
        ["mes"] => string(1) "5"
        ["ano"] => string(4) "2018"
        ["mesano"] => string(6) "4/2018"
        ["entregue_com_confirmacao"] => string(4) "1146"
    }
    [7] => array(10) {
        ["mes"] => string(1) "5"
        ["ano"] => string(4) "2018"
        ["mesano"] => string(6) "4/2018"
        ["entregue_para_operadora"] => string(1) "3"
    }
    .................
    .................
    .................
    [31] => array(5) {
        ["mes"] => string(2) "12"
        ["ano"] => string(4) "2017"
        ["mesano"] => string(7) "12/2017"
        ["bloqueada"] => string(1) "1"
    }
    
}
        

Vendo a situação acima da imagem que é o resultado da consulta e a impressão com var_dump montado o array eu tenho que agrupar as informações pela coluna "mesano" que é uma concatenação da coluna "mês" com "ano". 

Vamos as considerações: 

*** No resultado dessa consulta vista acima eu preciso montar uma saida em um array, onde deva conter todos os status (7 status) (mesmo não aparecendo todos caso não tenha o status ele deve existir e ir com valor padrão "zero") e qtd agrupados por "mesano", segue abaixo todos os status possíveis e mais as informações adicionais que deve ter em cada bloco do array.

______________________________________________

Aguardando (status da consulta)

Bloqueada (status da consulta)

Não Recebida (status da consulta)

Enviado a operadora (status da consulta)

Entregue com confirmação (status da consulta)

Entregue sem confirmação (status da consulta)

Cancelada (status da consulta)

 

Total enviada  (vai ser uma posição do array nova onde deve contabilizar todas as qtd menos o que tiver cancelada caso exista)

Mesano  (vai ser o dado base para montar cada array)

opcoes (vai entrar um link fixo mais informações da coluna referente ao bloco mes e ano ex: link mes / ano)

_________________________________________________

 

Olhando o resultado da consulta acima eu teria 6 blocos de informações posição [0] a [5], sendo que conforme imagem e array acima a minha saida deverá conter 6 blocos de informações(arrays)( 1 bloco(array) 05/2018, 2 bloco(array) 04/2018, 3 bloco (array) 03/2018, 4 bloco (array) 02/2018 ,5 bloco(array) 01/2018 e 6 bloco(array)12/2017) preciso juntar as informações por blocos(array).

 

A saída que eu preciso é o array abaixo com 6 blocos(array) de saida sendo assim cada um deles respectivo de cada mes/ano:

 

["data"] => array(6) {
    [0] => array(10) {
        ["aguardando"] => string(1) "0"
        ["bloqueada"] => string(1) "0"
        ["enviado_operadora"] => string(1) "0"
        ["nao_recebida"] => string(1) "0"
        ["entregue_sem_confirmacao"] => string(1) "8"
        ["entregue_com_confirmacao"] => string(1) "1"
        ["cancelada"] => string(1) "0"
        ["total_enviado"] => string(1) "9"
        ["mes_ano"] => string(10) "Mai / 2018"
        ["opcoes"] => string(217) "<center><a href='/m/05/a/2018' title='Listar'</a></center>"
    }
    [1] => array(10) {
        ["aguardando"] => string(1) "0"
        ["bloqueada"] => string(1) "2"
        ["enviado_operadora"] => string(1) "3"
        ["nao_recebida"] => string(3) "207"
        ["entregue_sem_confirmacao"] => string(5) "1.146"
        ["entregue_com_confirmacao"] => string(3) "552"
        ["cancelada"] => string(2) "12"
        ["total_enviado"] => string(5) "1.910"
        ["mes_ano"] => string(10) "Abr / 2018"
        ["opcoes"] => string(217) "<center><a href='/m/04/a/2018' title='Listar'</a></center>"
    }     
    [2] => array(10) {
        ["aguardando"] => string(1) "1"
        ["bloqueada"] => string(1) "9"
        ["enviado_operadora"] => string(1) "2"
        ["nao_recebida"] => string(1) "5"
        ["entregue_sem_confirmacao"] => string(2) "10"
        ["entregue_com_confirmacao"] => string(2) "85"
        ["cancelada"] => string(3) "418"
        ["total_enviado"] => string(3) "112"
        ["mes_ano"] => string(10) "Mar / 2018"
        ["opcoes"] => string(217) "<center><a href='/m/03/a/2018' title='Listar'</a></center>"
    }
    [3] => array(10) {
        ["aguardando"] => string(1) "8"
        ["bloqueada"] => string(1) "2"
        ["enviado_operadora"] => string(1) "0"
        ["nao_recebida"] => string(1) "3"
        ["entregue_sem_confirmacao"] => string(2) "15"
        ["entregue_com_confirmacao"] => string(1) "9"
        ["cancelada"] => string(1) "1"
        ["total_enviado"] => string(2) "37"
        ["mes_ano"] => string(10) "Fev / 2018"
        ["opcoes"] => string(217) "<center><a href='/m/02/a/2018' title='Listar'</a></center>"
    }
    [4] => array(10) {
        ["aguardando"] => string(1) "0"
        ["bloqueada"] => string(2) "10"
        ["enviado_operadora"] => string(1) "1"
        ["nao_recebida"] => string(1) "4"
        ["entregue_sem_confirmacao"] => string(2) "15"
        ["entregue_com_confirmacao"] => string(2) "42"
        ["cancelada"] => string(1) "0"
        ["total_enviado"] => string(2) "72"
        ["mes_ano"] => string(10) "Jan / 2018"
        ["opcoes"] => string(217) "<center><a href='/m/01/a/2018' title='Listar'</a></center>"
    }
    [5] => array(10) {
        ["aguardando"] => string(1) "0"
        ["bloqueada"] => string(1) "1"
        ["enviado_operadora"] => string(1) "2"
        ["nao_recebida"] => string(1) "4"
        ["entregue_sem_confirmacao"] => string(1) "3"
        ["entregue_com_confirmacao"] => string(2) "25"
        ["cancelada"] => string(1) "0"
        ["total_enviado"] => string(2) "35"
        ["mes_ano"] => string(10) "Dez / 2017"
        ["opcoes"] => string(217) "<center><a href='/m/12/a/2017' title='Listar'</a></center>"
    }
}

Obrigado pela compreensão e leitura!

Compartilhar este post


Link para o post
Compartilhar em outros sites
9 horas atrás, diego.baiao disse:

A saída que eu preciso é o array abaixo com 6 blocos(array) de saida sendo assim cada um deles respectivo de cada mes/ano:

 

Eai Diego

pelo o que eu entendi, você quer efetuar a pesquisa no seu banco de dados e informar no php?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa bom dia IGU. 

 

Eu tenho minha consulta o qual tem os 32 registros correto , ate ai blz. 

No meu model eu trabalho com ZF1 com MVC, eu tenho a consulta condensada e chamo ela no meu Controller. 

Dando um var dump nela tenho aqueles dados conforme array de 31 posições = 32 registros (pois a posição "zero" conta tb) ate ai blz também. 

 

Agora que vem o problema tenho que montar aquela saída dos 6 blocos(arrays) de saida exatamente no formato passado. Esses dados que eu puxo sempre tera 6 meses atuais, na minha consulta do banco ele ja identifica o mes atual e decrementa mais 5 meses totalizando sempre 6 meses, então independente minha saída sempre será nesse padrão independente de quantos registros tenha minha consulta nessa especifica veio (32 registros) para meu usuário, isso varia de sauriose para usurário, pois é a movimentação da conta, então tenho que pegar esses dados e agrupados de maneira que fique tudo na mesma forma conforme acima citado.  

Tem que ficar assim e isso é padrão para todos os usuários, sempre vai ter 6 blocos(arrays) onde agrupa status e quantidade por mes/ano

 

["data"] => array(6) {
    [0] => array(10) {
        ["aguardando"] => string(1) "0"
        ["bloqueada"] => string(1) "0"
        ["enviado_operadora"] => string(1) "0"
        ["nao_recebida"] => string(1) "0"
        ["entregue_sem_confirmacao"] => string(1) "8"
        ["entregue_com_confirmacao"] => string(1) "1"
        ["cancelada"] => string(1) "0"
        ["total_enviado"] => string(1) "9"
        ["mes_ano"] => string(10) "Mai / 2018"
        ["opcoes"] => string(217) "<center><a href='/m/05/a/2018' title='Listar'</a></center>"
    }
    [1] => array(10) {
        ["aguardando"] => string(1) "0"
        ["bloqueada"] => string(1) "2"
        ["enviado_operadora"] => string(1) "3"
        ["nao_recebida"] => string(3) "207"
        ["entregue_sem_confirmacao"] => string(5) "1.146"
        ["entregue_com_confirmacao"] => string(3) "552"
        ["cancelada"] => string(2) "12"
        ["total_enviado"] => string(5) "1.910"
        ["mes_ano"] => string(10) "Abr / 2018"
        ["opcoes"] => string(217) "<center><a href='/m/04/a/2018' title='Listar'</a></center>"
    }     
    [2] => array(10) {
        ["aguardando"] => string(1) "1"
        ["bloqueada"] => string(1) "9"
        ["enviado_operadora"] => string(1) "2"
        ["nao_recebida"] => string(1) "5"
        ["entregue_sem_confirmacao"] => string(2) "10"
        ["entregue_com_confirmacao"] => string(2) "85"
        ["cancelada"] => string(3) "418"
        ["total_enviado"] => string(3) "112"
        ["mes_ano"] => string(10) "Mar / 2018"
        ["opcoes"] => string(217) "<center><a href='/m/03/a/2018' title='Listar'</a></center>"
    }
    [3] => array(10) {
        ["aguardando"] => string(1) "8"
        ["bloqueada"] => string(1) "2"
        ["enviado_operadora"] => string(1) "0"
        ["nao_recebida"] => string(1) "3"
        ["entregue_sem_confirmacao"] => string(2) "15"
        ["entregue_com_confirmacao"] => string(1) "9"
        ["cancelada"] => string(1) "1"
        ["total_enviado"] => string(2) "37"
        ["mes_ano"] => string(10) "Fev / 2018"
        ["opcoes"] => string(217) "<center><a href='/m/02/a/2018' title='Listar'</a></center>"
    }
    [4] => array(10) {
        ["aguardando"] => string(1) "0"
        ["bloqueada"] => string(2) "10"
        ["enviado_operadora"] => string(1) "1"
        ["nao_recebida"] => string(1) "4"
        ["entregue_sem_confirmacao"] => string(2) "15"
        ["entregue_com_confirmacao"] => string(2) "42"
        ["cancelada"] => string(1) "0"
        ["total_enviado"] => string(2) "72"
        ["mes_ano"] => string(10) "Jan / 2018"
        ["opcoes"] => string(217) "<center><a href='/m/01/a/2018' title='Listar'</a></center>"
    }
    [5] => array(10) {
        ["aguardando"] => string(1) "0"
        ["bloqueada"] => string(1) "1"
        ["enviado_operadora"] => string(1) "2"
        ["nao_recebida"] => string(1) "4"
        ["entregue_sem_confirmacao"] => string(1) "3"
        ["entregue_com_confirmacao"] => string(2) "25"
        ["cancelada"] => string(1) "0"
        ["total_enviado"] => string(2) "35"
        ["mes_ano"] => string(10) "Dez / 2017"
        ["opcoes"] => string(217) "<center><a href='/m/12/a/2017' title='Listar'</a></center>"
    }
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
4 horas atrás, igu disse:

 

Eai Diego

pelo o que eu entendi, você quer efetuar a pesquisa no seu banco de dados e informar no php?

Opa boa tarde!

Não. Eu já tenho a consulta e já listei ela no php através de um array de 32 posições.

Agora tenho que trabalhar em cima desse array de 32 posições para formar um array final de 6 posições, que são elas agrupadas por mes/ano

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Jonas Ribeiro Nascimento
      Estou criando meu próprio mvc php para adquirir mais conhecimento.
      Mas estou me deparando com uma coisa muita estranha, eu perco a $_SESSION de uma view para outra view
      Fiz um codigo simples pra testar.a.php ----- view a.php
      <?php session_start(); $_SESSION['teste'] = 'Funcionou'; echo $_SESSION['teste']; ?> <?php session_start(); echo $_SESSION['teste']; // Notice: Undefined variable: _SESSION in var_dump($_SESSION); // Notice: Undefined variable: _SESSION in NULL ?> <?php namespace Sis\Classes; use App\Model\ClassLogin; use Sis\Traits\TraitGetIp; class ClassSession { private $login; private $timeSession = 1200; private $timeCanary = 300; public function __construct(){ if(session_id() == ''){ ini_set("session.save_handler", "files"); //Cabeçalhos somente atraves de arquivos ini_set("session.use_cookies", 1); //Habilita o uso de cookies ini_set("session.use_only_cookies", 1); //Só pode habilitar a seção atraves de coockies ini_set("session.cookie_domain", DOMAIN); //Só aceita coockies vindo do nosso sistema ini_set("session.cookie_httponly", 1); //Só aceita script php e não deixa o javascript alterar o sistema if(DOMAIN != "localhost"){ ini_set("session.cookie_secure", 1); //Para trabalhar com o SSL do servidor ativo } /*Criptografia das nossas sessions*/ ini_set("session.entropy_length", 512); // ini_set("session.entropy_file","/dev/urandom"); ini_set("session.hash_function", "sha256"); ini_set("session.hash_bits_per_character", 5); session_start(); } $this->login = new ClassLogin(); } #Proteger contra roubo de sessão public function setSessionCanary($par=null){ session_regenerate_id(true); if($par == null){ $_SESSION['canary']=[ "birth" => time(), "IP" => TraitGetIp::getUserIp() //Pega o ip do usuario ]; }else{ $_SESSION['canary']['birth']=time(); } } #Verificar a integridade da sessão public function verifyIdSessions(){ if(!isset($_SESSION['canary'])){ $this->setSessionCanary(); } if($_SESSION['canary']['IP'] !== TraitGetIp::getUserIp()){ $this->destructSessions(); $this->setSessionCanary(); } if($_SESSION['canary']['birth'] < time() - $this->timeCanary){ $this->setSessionCanary("Time"); } } #Setar as sessões do nosso sistema public function setSessions($Email){ $this->verifyIdSessions(); $_SESSION['Login'] = true; $_SESSION['Time'] = time(); $_SESSION['Nome'] = $this->login->getIssetSession($Email)['data']['Nome']; $_SESSION['Email'] = $this->login->getIssetSession($Email)['data']['Email']; $_SESSION['Permissoes'] = $this->login->getIssetSession($Email)['data']['Permissoes']; } #Validar as páginas internas do sistema public function verifyInsideSession(){ $this->verifyIdSessions(); if(!isset($_SESSION['Login']) || !isset($_SESSION['Permissoes']) || !isset($_SESSION['canary'])){ $this->destructSessions(); header("Location: ".DIRPAGE."NaoAutorizado"); }else{ if($_SESSION['Time'] >= time() - $this->timeSession){ $_SESSION['Time']=time(); }else{ $this->destructSessions(); header("Location: ".DIRPAGE."NaoAutorizado"); } } } #Destruir as sessions existentes public function destructSessions(){ foreach (array_keys($_SESSION) as $key) { unset($_SESSION[$key]); } } #testar public function testarSessions(){ echo 'oiiiiiiiiiiiiiiiiiiiiiiooooooooooo'; } }

    • Por Allan Carlos dos Santos G
      Bom dia Pessoal, Gostaria de saber como Instalar e colocar pra rodar a versão do Zend PHP 1.11.11, tenho tido dificuldade de achar material na internet e se puderem ajudar, obrigado!
    • Por Perroni91
      Olá pessoal.
      Estou com uma dúvida, mas como sou leiga no mysql, não estou conseguindo resolver.
       
      Tenho duas tabelas no meu banco de dados:
       
      Posts
      id
      titulo_principal
      categoria_id
      imagem
       
      Categorias
      id
      categoria
       
      ---

      Já cadastrei as categorias 'HTML' e 'CSS', e cada um contêm 1 post de cada.

      O que eu gostaria era que: A cada vez que criar um post em alguma dessas categorias, mostrar a quantidade separadamente.

      Ficaria assim:
      HTML               3
      CSS                   1


      Alguém poderia me ajudar, por favor?
      Estou quebrando a cabeça tentando fazer isso e não consegui.
      Obrigada!
    • Por Rogerio Pancini
      Bom dia pessoal!

      Estou com seguinte caso: preciso fazer uma coleta de dados, que no caso seria esta seleção:
       
      $sql_c_1 = mysqli_query($config, "SELECT DISTINCT id_malote FROM boletosdomalote WHERE usuario_recebimento = '$id_usuario' AND conffin <> 'S'") or die(mysqli_error($config)); if(@mysqli_num_rows($sql_c_1) <= '0'){ $c_sql_c_1[] = ""; }else{ while($r_sql_c_1 = mysqli_fetch_array($sql_c_1)){ $c_sql_c_1[] = $r_sql_c_1[0]; } } $sql_c_2 = mysqli_query($config, "SELECT DISTINCT id_malote FROM caixasdomalote WHERE usuario_recebimento = '$id_usuario' AND conffin <> 'S'") or die(mysqli_error($config)); if(@mysqli_num_rows($sql_c_2) <= '0'){ $c_sql_c_2[] = ""; }else{ while($r_sql_c_2 = mysqli_fetch_array($sql_c_2)){ $c_sql_c_2[] = $r_sql_c_2[0]; } } $sql_c_3 = mysqli_query($config, "SELECT DISTINCT id_malote FROM notasfiscaisdomalote WHERE usuario_recebimento = '$id_usuario' AND conffin <> 'S'") or die(mysqli_error($config)); if(@mysqli_num_rows($sql_c_3) <= '0'){ $c_sql_c_3[] = ""; }else{ while($r_sql_c_3 = mysqli_fetch_array($sql_c_3)){ $c_sql_c_3[] = $r_sql_c_3[0]; } } $sql_c_4 = mysqli_query($config, "SELECT DISTINCT id_malote FROM documentosdomalote WHERE usuario_recebimento = '$id_usuario' AND conffin <> 'S'") or die(mysqli_error($config)); if(@mysqli_num_rows($sql_c_4) <= '0'){ $c_sql_c_4[] = ""; }else{ while($r_sql_c_4 = mysqli_fetch_array($sql_c_4)){ $c_sql_c_4[] = $r_sql_c_4[0]; } } $sql_c_5 = mysqli_query($config, "SELECT DISTINCT id_malote FROM tb_cheque_malote WHERE usuario_recebimento = '$id_usuario' AND conffin <> 'S'") or die(mysqli_error($config)); if(@mysqli_num_rows($sql_c_5) <= '0'){ $c_sql_c_5[] = ""; }else{ while($r_sql_c_5 = mysqli_fetch_array($sql_c_5)){ $c_sql_c_5[] = $r_sql_c_5[0]; } } $sql_c_6 = mysqli_query($config, "SELECT DISTINCT id_malote FROM tb_holerite_malote WHERE usuario_recebimento = '$id_usuario' AND conffin <> 'S'") or die(mysqli_error($config)); if(@mysqli_num_rows($sql_c_6) <= '0'){ $c_sql_c_6[] = ""; }else{ while($r_sql_c_6 = mysqli_fetch_array($sql_c_6)){ $c_sql_c_6[] = $r_sql_c_6[0]; } } $sql_c_7 = mysqli_query($config, "SELECT DISTINCT id_malote FROM tb_material_grafico_malote WHERE usuario_recebimento = '$id_usuario' AND conffin <> 'S'") or die(mysqli_error($config)); if(@mysqli_num_rows($sql_c_7) <= '0'){ $c_sql_c_7[] = ""; }else{ while($r_sql_c_7 = mysqli_fetch_array($sql_c_7)){ $c_sql_c_7[] = $r_sql_c_7[0]; } } $sql_c_8 = mysqli_query($config, "SELECT DISTINCT id_malote FROM tb_outros_malote WHERE usuario_recebimento = '$id_usuario' AND conffin <> 'S'") or die(mysqli_error($config)); if(@mysqli_num_rows($sql_c_8) <= '0'){ $c_sql_c_8[] = ""; }else{ while($r_sql_c_8 = mysqli_fetch_array($sql_c_8)){ $c_sql_c_8[] = $r_sql_c_8[0]; } } $sql_c_9 = mysqli_query($config, "SELECT DISTINCT id_malote FROM tb_dinheiro_malote WHERE usuario_recebimento = '$id_usuario' AND conffin <> 'S'") or die(mysqli_error($config)); if(@mysqli_num_rows($sql_c_9) <= '0'){ $c_sql_c_9[] = ""; }else{ while($r_sql_c_9 = mysqli_fetch_array($sql_c_9)){ $c_sql_c_9[] = $r_sql_c_9[0]; } } $sql_c_10 = mysqli_query($config, "SELECT DISTINCT id_malote FROM tb_dep_pessoal_malote WHERE usuario_recebimento = '$id_usuario' AND conffin <> 'S'") or die(mysqli_error($config)); if(@mysqli_num_rows($sql_c_10) <= '0'){ $c_sql_c_10[] = ""; }else{ while($r_sql_c_10 = mysqli_fetch_array($sql_c_10)){ $c_sql_c_10[] = $r_sql_c_10[0]; } }
      Eu até fiz teste com arrays.
      Se eu der um implode, consigo fazer o select que preciso:
       
      if(!empty($c_sql_c_1)){ $v_c_sql_c_1 = implode(",",$c_sql_c_1); }else{ $v_c_sql_c_1 = ""; }
       
      $sql_3 = mysqli_query($config, "SELECT ma.id, ma.titulo, ma.datadecadastro, usr.nome, ma.id_estabelecimento_origem, ma.id_estabelecimento_destino, ma.status, ma.id_usuario_envio FROM malote ma LEFT JOIN usuario AS usr ON (ma.id_usuario_envio = usr.id) WHERE ma.id_estabelecimento_origem = '$id_estabelecimento' && ma.id_usuario_cadastro = '$id_usuario' OR ma.id_estabelecimento_destino = '$id_estabelecimento' && ma.id_usuario_cadastro = '$id_usuario' OR ma.status = '1' && ma.id_estabelecimento_origem = '$id_estabelecimento' OR ma.status = '2' && ma.id_estabelecimento_origem = '$id_estabelecimento' OR ma.status = '1' && ma.id_estabelecimento_destino = '$id_estabelecimento' OR ma.status = '2' && ma.id_estabelecimento_destino = '$id_estabelecimento' OR ma.id IN ($v_c_sql_c_1) ORDER BY ma.datadecadastro DESC") or die(mysqli_error($config)); }
      Porém, eu precisaria fazer o select com todos os resultados acima.

      Fiz outro teste, concatenando todos:
       
      echo $v_c_sql_c_1 . " " . $v_c_sql_c_2 . " " . $v_c_sql_c_3 . " " . $v_c_sql_c_4 . " " . $v_c_sql_c_5 . " " . $v_c_sql_c_6 . " " . $v_c_sql_c_7 . " " . $v_c_sql_c_8 . " " . $v_c_sql_c_9 . " " . $v_c_sql_c_10;
      E o resultado foi esse:

      312,317 312,317,324 312

      Apesar de não estar bonito, se funcionasse poderia ser assim, mas o $sql_3 não lê, por ter espaços sem vírgula, além do resultado estar errado, por ter id's repetidos.

      Se alguém tiver alguma ideia da forma mais correta de chegar ao resultado final, eu agradeço.
      Pensei em formar um array, com o array_merge, mas não deu certo também.
      Enfim, a ideia é juntar todos os resultados, de forma não repetida, para incluir no $sql_3.

      Obrigado pela atenção.
       
    • Por Claudia França
      Prezados há dias consegui chegar no fim do projeto e, agora resta apenas corrigir o erro que ocorro no fim da transação. "Atualizar informações de pagamento. "
       Eu tenho aqui a doc. Mas não seu exatamente o que alterar no código para corrigir isso. E preciso de ajuda,
       
      https://www.userede.com.br/desenvolvedores/pt/produto/e-Rede#documentacao-3ds
       
      function updatePaymentAPI($apikey, $secret, $callid, $currencyCode,$total, $subtal){
          $time = time();
          $query_string = "apikey=".$apikey;
          $resource = "payment/info/".$callid;
          $body = "{\"updateInfo\":[{\"payInfo\":{\"reason\":\"ProductionKey Test\",
          \"avsResponseCode\":\"Y\",\"total\":".$total.",\"currencyCode\":\"".$currencyCode."\",
          \"eventStatus\":\"Success\",\"eventType\":\"Authorize\"}},{\"orderInfo\":{\"currencyCode\":\"".$currencyCode."\",
          \"discount\":0,\"eventType\":\"Confirm\",\"giftWrap\":0,\"misc\":0,
          \"reason\":\"Order_placed\",\"shippingHandling\":0,\"subtotal\":".$subtal.",\"tax\":0,\"total\":".$total."}}]}";
          $certificatePath = 'cert.pem';
          $privateKey = 'key_9e082920-8ec4-441a-8cfa-588b0829d326.pem';
          //Hash for x-pay-token
          $token = $time.$resource.$query_string.$body;
          $hashtoken = "xv2:".$time.":".hash_hmac('sha256', $token, $secret); //X-PAY-TOKEN String
          //$url = "https://api.visa.com/wallet-services-web/".$resource."?".$query_string;
          $url = "https://api.visa.com/wallet-services-web/".$resource."?".$query_string;
          updatePaymentLog("=========================================\n\n");
          updatePaymentLog("CallID : ".$callid."\n");
          updatePaymentLog("URL : ".$url."\n\n");
          updatePaymentLog("Update Payment Request Parameters : \n");
          updatePaymentLog($body);
          //Header
          $header = (array("X-PAY-TOKEN: ".$hashtoken, "Accept: application/json", "Content-Type: application/json","X-FRAME-OPTIONS: SAMEORIGIN"));
          $ch = curl_init();
          curl_setopt($ch, CURLOPT_URL, $url);
          curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
          curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
          curl_setopt($ch, CURLOPT_SSLVERSION , 1);
          curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
          curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
          //curl_setopt($ch, CURLOPT_SSLCERT, $certificatePath);
          //curl_setopt($ch, CURLOPT_SSLKEY, $privateKey);
          curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
          curl_setopt($ch, CURLOPT_POSTFIELDS,$body);
          //getting response from server
          $response = curl_exec($ch);
          if(!$response) {
              die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
          }
          $statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
          curl_close($ch);
          $json = "";
          $ret = array(
            'status' =>"",
            'data' => ""
          );
          if($statusCode == 200) { //If success => empty Object.
              $ret['status'] = 'success';
              updatePaymentLog("\nUpdate Payment Info called Successfully...\n");
          }else{ // Return Error Object
              $ret['status'] = 'fail';
              $ret['data'] = $response;
              updatePaymentLog("\nSomething Went Wrong....\n");
              $json = json_decode($response);
              $json = json_encode($json, JSON_PRETTY_PRINT);
          }
          updatePaymentLog("\nStatus Code : " . $statusCode ."\n");
          updatePaymentLog($json);
          updatePaymentLog("\n");
          echo json_encode($ret);
      }
      updatePaymentAPI($visaApiKey, $sharedSecret, $callid, $currencyCode, $total, $subtotal);
      ?>
       
       
       
       
       
×

Informação importante

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