Ir para conteúdo

POWERED BY:

Arquivado

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

PauloRMaia

Extrair Result

Recommended Posts

Olá, estou usando esta função para comunicar com meu webservice 

 

$client = new SoapClient('http://Meuwebservice.asmx?wsdl');
$funcao = 'ConsultarUsuario';
$argumentos= array('ConsultarUsuario'  => array(
                        'ChaveUsuario' => 'chave de acesso do usuario',
                        'aplicativo'   => 'Nome da minha aplicação',
                        'RotaDatabase' => 'caminho da minha base de dados'
                ));
$resultado = $client->__soapCall($funcao, $argumentos); 
echo 'RESPOSTA = ';
print_r($resultado);

E esta funcionando bem, e esta me retornando todos os resultados =  recebo 20 results

Assim

RESPOSTA = stdClass Object ( [ConsultarUsuarioResult] => stdClass Object ( [string] => Array ( [0] => Usuário Registrado [1] => User Teste Mob1 [2] => U10SEG0721 [3] => 10/07/2017 03:00:00 [4] => 10/08/2017 03:00:00 [5] => Ativo [6] => Paulo R Maia [7] => 55555555555555 [8] => endereço teste [9] => 77 [10] => casa [11] => bairro teste [12] => cidade teste [13] => sp [14] => 55555555 [15] => 55555555555 [16] => teste@hotmail.com [17] => Sistema [18] => 99 [19] => Testando [20] => 1 ) ) )

 

* Preciso extrair o Result(0)  e o Result(5)   desse retorno !  para fazer uma comparação ,  como posso fazer isso ?

OU...

* Preciso extrair o Array(0)  e o Array(5)   desse retorno !  para fazer uma comparação ,  como posso fazer isso ?

Assim não funciona...........

ex. em VBA.

If ($funcao = 'ConsultarUsuario'[0] === 'Usuário Registrado') {
    echo '*OK Registrado';
// cria um arquivo registro no regedit do windows
else
 echo '*Não Registrado';
// Ler o arquivo registro criado no regedit

// Atualiza o arquivo registro criado no regedit

}

 

Como posso obter esse resultado , para o desvio ( if )  que preciso.

após isso , obtendo esse resultado preciso criar um arquivo no regedit do windows 

 

Qual a solução para esse problema ?


.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você escreveu um código qualquer sem saber o que está fazendo e queria que funcionasse? 

 

Em 7/26/2017 at 20:11, PauloRMaia disse:

Assim não funciona...........


If ($funcao = 'ConsultarUsuario'[0] === 'Usuário Registrado') {
    echo '*OK Registrado';
// cria um arquivo registro no regedit do windows
else
 echo '*Não Registrado';
// Ler o arquivo registro criado no regedit

// Atualiza o arquivo registro criado no regedit

}

 

 

Você precisa aprender a manipular objetos e arrays.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim ,  basta compreender o que eu disse na criação do tópico,  que uso em VBA ,  e deixei o cod. como exemplo para ter uma noção e me ajudarem a formar um em PHP !

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites
47 minutos atrás, Lucas Guima disse:

Você escreveu um código qualquer sem saber o que está fazendo e queria que funcionasse? 

 

 

Você precisa aprender a manipular objetos e arrays.

 

Só Faltou mesmo, Realmente TENTAR AJUDAR .......

 

Aguardo.

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ezzcardoso
      Pessoal, estou fazendo um script php para selecionar registros no banco de dados... que funciona normalmente.. porém, não estou sabendo como trarar o dados gerados pelo script. Vejamos um exemplo.
      <?php abstract class Eac { private $localhost = "localhost"; private $root = "root"; private $password = ""; private $database = "database"; private $port = "3306"; protected function open() { $conn = new mysqli($this->localhost, $this->root, $this->password, $this->database, $this->port); $conn->select_db($this->database); $conn->set_charset("utf8"); if ($conn->connect_error) { return $conn->connect_error; } else { return $conn; } } } class SQL extends Eac { public function insert($table, $array) { if (is_array($array)) { $conn = $this->open(); $fields = array(); $values = array(); foreach ($array as $key => $value) { $fields[] = $key; $values[] = "'" . $value = $conn->real_escape_string($value) . "'"; } $fields = implode(",", $fields); $values = implode(",", $values); $sql = "INSERT INTO {$table} ({$fields}) VALUES ({$values})"; if ($conn->query($sql)) { return array( "Error" => false, "insert_id" => $conn->insert_id, "affected_rows" => $conn->affected_rows, "info" => $conn->info ); } else { return array( "error" => $conn->error ); } $conn->close(); } else { echo ("Não é array"); } } public function delete($table, $where) { $conn = $this->open(); $sql = "DELETE FROM {$table} {$where}"; if ($conn->query($sql)) { return array( "affected_rows" => $conn->affected_rows, "info" => $conn->info ); } else { return array( "error" => $conn->error ); } $conn->close(); } public function update($table, $array, $where) { if (is_array($array)) { $conn = $this->open(); $sql = "UPDATE {$table} SET "; $sets = array(); foreach ($array as $column => $value) { $sets[] = $column . " = '" . $value = $conn->real_escape_string($value) . "'"; } $sql .= implode(',', $sets); $sql .= $where; if ($conn->query($sql)) { return array( "Error" => false, "insert_id" => $conn->insert_id, "affected_rows" => $conn->affected_rows, "info" => $conn->info ); } else { return array( "error" => $conn->error ); } $conn->close(); } } public function select($table, $array, $rules) { $conn = $this->open(); switch ($array) { case '*': $conditions = array(); foreach ($rules as $column => $value) { $conditions[] =" {$column} {$value} "; } $condition = implode("",$conditions); echo $sql = "SELECT * FROM {$table} {$condition}"; break; case is_array($array): $fields = array(); foreach ($array as $column => $value) { $fields[] = $value; } $conditions = array(); foreach ($rules as $column => $value) { $conditions[] =" {$column} {$value} "; } $field = implode(",", $fields); $condition = implode("",$conditions); echo $sql = "SELECT {$field} FROM {$table} {$condition}"; break; } $select = $conn->query($sql); $result = array(); if ($select->num_rows > 0) { $stack = array(); while ($row = $select->fetch_array()) { $stack[] = $row; } return ($stack); } else { echo "0 results"; } $conn->close(); } } ?> Aí em cima é meu script normal pra fazer o select e está 100% funcionando.
       
       
      Agora o problema é quando eu faço o comando 
       
       
      $database = new SQL(); $cliente = $database->select("cliente","*",$rules = array()); var_dump($cliente); Mostra o seguinte 
      array (size=2) 0 => array (size=18) 0 => string '21' (length=2) 'id' => string '21' (length=2) 1 => string 'Lula Luiz Inacio Da Silva' (length=25) 'nome' => string 'Lula Luiz Inacio Da Silva' (length=25) 2 => string 'CPF' (length=3) 'tipo' => string 'CPF' (length=3) 3 => string '12345678912' (length=11) 'CPF_CNPJ' => string '12345678912' (length=11) 4 => string '66552852154' (length=11) 'telefone_celular' => string '66552852154' (length=11) 5 => string '31454564' (length=8) 'telefone_comercial' => string '31454564' (length=8) 6 => string 'lula@povo.com.br' (length=16) 'email' => string 'lula@povo.com.br' (length=16) 7 => string '5936d1d7296d0' (length=13) 'cliente_id' => string '5936d1d7296d0' (length=13) 8 => string 'lula é um ex presidente...' (length=28) 'obs' => string 'lula é um ex presidente...' (length=28) 1 => array (size=18) 0 => string '20' (length=2) 'id' => string '20' (length=2) 1 => string 'Dilma Luiz Inacio Da Silva' (length=26) 'nome' => string 'Dilma Luiz Inacio Da Silva' (length=26) 2 => string 'CPF' (length=3) 'tipo' => string 'CPF' (length=3) 3 => string '12345678912' (length=11) 'CPF_CNPJ' => string '12345678912' (length=11) 4 => string '66552852154' (length=11) 'telefone_celular' => string '66552852154' (length=11) 5 => string '31454564' (length=8) 'telefone_comercial' => string '31454564' (length=8) 6 => string 'lula@povo.com.br' (length=16) 'email' => string 'lula@povo.com.br' (length=16) 7 => string '5936d1b61f716' (length=13) 'cliente_id' => string '5936d1b61f716' (length=13) 8 => string 'lula é um ex presidente...' (length=28) 'obs' => string 'lula é um ex presidente...' (length=28)  
      agora... como que eu ponho isso em tabela ?????
       
       
      eu fiz o seguinte.
       
       
      foreach($cliente as $key => $value){ foreach($value as $keys => $values){ echo $values->nome; $values->CPF; } }  
       
      só que não funciona....
       
       
      resultado 
       
      Notice: Trying to get property of non-object 
       
       
      ...
       
       
       
      Minha questão é.... COMO  posso organizar aquela Array   em uma tabela de marcação HTML 
    • Por ezzcardoso
      Pessoal, estou fazendo um script php para selecionar registros no banco de dados... que funciona normalmente.. porém, não estou sabendo como trarar o dados gerados pelo script. Vejamos um exemplo.
      <?php abstract class Eac { private $localhost = "localhost"; private $root = "root"; private $password = ""; private $database = "database"; private $port = "3306"; protected function open() { $conn = new mysqli($this->localhost, $this->root, $this->password, $this->database, $this->port); $conn->select_db($this->database); $conn->set_charset("utf8"); if ($conn->connect_error) { return $conn->connect_error; } else { return $conn; } } } class SQL extends Eac { public function insert($table, $array) { if (is_array($array)) { $conn = $this->open(); $fields = array(); $values = array(); foreach ($array as $key => $value) { $fields[] = $key; $values[] = "'" . $value = $conn->real_escape_string($value) . "'"; } $fields = implode(",", $fields); $values = implode(",", $values); $sql = "INSERT INTO {$table} ({$fields}) VALUES ({$values})"; if ($conn->query($sql)) { return array( "Error" => false, "insert_id" => $conn->insert_id, "affected_rows" => $conn->affected_rows, "info" => $conn->info ); } else { return array( "error" => $conn->error ); } $conn->close(); } else { echo ("Não é array"); } } public function delete($table, $where) { $conn = $this->open(); $sql = "DELETE FROM {$table} {$where}"; if ($conn->query($sql)) { return array( "affected_rows" => $conn->affected_rows, "info" => $conn->info ); } else { return array( "error" => $conn->error ); } $conn->close(); } public function update($table, $array, $where) { if (is_array($array)) { $conn = $this->open(); $sql = "UPDATE {$table} SET "; $sets = array(); foreach ($array as $column => $value) { $sets[] = $column . " = '" . $value = $conn->real_escape_string($value) . "'"; } $sql .= implode(',', $sets); $sql .= $where; if ($conn->query($sql)) { return array( "Error" => false, "insert_id" => $conn->insert_id, "affected_rows" => $conn->affected_rows, "info" => $conn->info ); } else { return array( "error" => $conn->error ); } $conn->close(); } } public function select($table, $array, $rules) { $conn = $this->open(); switch ($array) { case '*': $conditions = array(); foreach ($rules as $column => $value) { $conditions[] =" {$column} {$value} "; } $condition = implode("",$conditions); echo $sql = "SELECT * FROM {$table} {$condition}"; break; case is_array($array): $fields = array(); foreach ($array as $column => $value) { $fields[] = $value; } $conditions = array(); foreach ($rules as $column => $value) { $conditions[] =" {$column} {$value} "; } $field = implode(",", $fields); $condition = implode("",$conditions); echo $sql = "SELECT {$field} FROM {$table} {$condition}"; break; } $select = $conn->query($sql); $result = array(); if ($select->num_rows > 0) { $stack = array(); while ($row = $select->fetch_array()) { $stack[] = $row; } return ($stack); } else { echo "0 results"; } $conn->close(); } } ?> Aí em cima é meu script normal pra fazer o select e está 100% funcionando.
       
       
      Agora o problema é quando eu faço o comando 
       
       
      $database = new SQL(); $cliente = $database->select("cliente","*",$rules = array()); var_dump($cliente); Mostra o seguinte 
      array (size=2) 0 => array (size=18) 0 => string '21' (length=2) 'id' => string '21' (length=2) 1 => string 'Lula Luiz Inacio Da Silva' (length=25) 'nome' => string 'Lula Luiz Inacio Da Silva' (length=25) 2 => string 'CPF' (length=3) 'tipo' => string 'CPF' (length=3) 3 => string '12345678912' (length=11) 'CPF_CNPJ' => string '12345678912' (length=11) 4 => string '66552852154' (length=11) 'telefone_celular' => string '66552852154' (length=11) 5 => string '31454564' (length=8) 'telefone_comercial' => string '31454564' (length=8) 6 => string 'lula@povo.com.br' (length=16) 'email' => string 'lula@povo.com.br' (length=16) 7 => string '5936d1d7296d0' (length=13) 'cliente_id' => string '5936d1d7296d0' (length=13) 8 => string 'lula é um ex presidente...' (length=28) 'obs' => string 'lula é um ex presidente...' (length=28) 1 => array (size=18) 0 => string '20' (length=2) 'id' => string '20' (length=2) 1 => string 'Dilma Luiz Inacio Da Silva' (length=26) 'nome' => string 'Dilma Luiz Inacio Da Silva' (length=26) 2 => string 'CPF' (length=3) 'tipo' => string 'CPF' (length=3) 3 => string '12345678912' (length=11) 'CPF_CNPJ' => string '12345678912' (length=11) 4 => string '66552852154' (length=11) 'telefone_celular' => string '66552852154' (length=11) 5 => string '31454564' (length=8) 'telefone_comercial' => string '31454564' (length=8) 6 => string 'lula@povo.com.br' (length=16) 'email' => string 'lula@povo.com.br' (length=16) 7 => string '5936d1b61f716' (length=13) 'cliente_id' => string '5936d1b61f716' (length=13) 8 => string 'lula é um ex presidente...' (length=28) 'obs' => string 'lula é um ex presidente...' (length=28)  
      agora... como que eu ponho isso em tabela ?????
       
       
      eu fiz o seguinte.
       
       
      foreach($cliente as $key => $value){ foreach($value as $keys => $values){ echo $values->nome; $values->CPF; } }  
       
      só que não funciona....
       
       
      resultado 
       
      Notice: Trying to get property of non-object 
       
       
      ...
       
       
       
      Minha questão é.... COMO  posso organizar aquela Array   em uma tabela de marcação HTML 
    • Por mnmn
      Olá pessoal, tudo bom?
       
      Poderiam me ajudar?
       
      Depois de executar o primeiro select preciso capturar o valor de duas calunas para cada linha retornada na consulta.
       
      As colunas que preciso capturar são: horario_horariofuncionario e tempo_servicosalao.
       
      Após capturar os valores dessas colunas, necessito usar esses valores no select que está dentro do laço WHILE.
       
      Porém a variável está vindo com valor diferente: deveria ser '21:00' mas está vindo :00
      <?php include 'conectar.php'; $servico = $_GET['servico']; $data = $_GET['data']; $diaDaSemana = $_GET['diaDaSemana']; $stmt = $conn->query("SET CHARACTER SET utf8"); $stmt = $conn->query("SET NAMES utf8"); //Selecionando horários disponíveis na data selecionada para todos profissionais que fizerem o serviço selecionado $stmt = $conn->prepare("SELECT hf.horario_horariofuncionario, hf.codigo_horariofuncionario, sf.codigo_servicosalao, s.nome_servico, ss.tempo_servicosalao, ss.preco_servicosalao, hf.data_horariofuncionario, hf.nomeDiaSemana_horariofuncionario, f.codigo_funcionario, f.nome_funcionario, f.apelido_funcionario, f.foto_funcionario FROM servicosalao ss NATURAL JOIN servico s NATURAL JOIN horariofuncionario hf NATURAL JOIN funcionario f NATURAL JOIN servicofuncionario sf WHERE sf.codigo_servicosalao = :servico AND hf.data_horariofuncionario = :data AND hf.nomeDiaSemana_horariofuncionario = :diaDaSemana AND hf.codigo_statushorariofuncionario IN (1,3) ORDER BY STR_TO_DATE(hf.horario_horariofuncionario,'%H:%i')"); $stmt->bindParam(':servico', $servico, PDO::PARAM_INT); $stmt->bindParam(':data', $data, PDO::PARAM_STR, 10); $stmt->bindParam(':diaDaSemana', $diaDaSemana, PDO::PARAM_STR, 15); $stmt->execute(); //Criando array $rows = array(); //Percorrendo resultados retornados while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $horario = $row['horario_horariofuncionario']; $tempo = $row['tempo_servicosalao']; $stmt = $conn->prepare("SELECT hf.horario_horariofuncionario FROM horariofuncionario hf NATURAL JOIN servicofuncionario sf WHERE sf.codigo_servicosalao = :servico AND hf.data_horariofuncionario = :data AND hf.nomeDiaSemana_horariofuncionario = :diaDaSemana AND hf.codigo_statushorariofuncionario = 2 group by (hf.horario_horariofuncionario) HAVING STR_TO_DATE(hf.horario_horariofuncionario,'%H:%i') BETWEEN STR_TO_DATE($horario,'%H:%i') AND SEC_TO_TIME( SUM( TIME_TO_SEC( STR_TO_DATE($horario,'%H:%i') ) + TIME_TO_SEC( STR_TO_DATE($tempo,'%i') ) ) )"); $stmt->bindParam(':servico', $servico, PDO::PARAM_INT); $stmt->bindParam(':data', $data, PDO::PARAM_STR, 10); $stmt->bindParam(':diaDaSemana', $diaDaSemana, PDO::PARAM_STR, 15); $stmt->execute(); //Recebendo o número de linhas retornadas $rows = $stmt->fetchAll(); //Contando o número de linhas retornadas $total = count($rows); //Se não retornou resultados if($total < 1) { $rows[] = $row; } } echo json_encode($rows); ?>
    • Por mnmn
      Preciso selecionar todos horários dos funcionários (horario_horariofuncionario) de acordo com a filtragem de serviço, data e dia da semana.



      Estou conseguindo fazer esse select normalmente, porém como são vários horários (horario_horariofuncionario) está sendo gerado um novo resultado para cada novo horário encontrado...



      E nesses resultados, claro, o único atríbuto que os diferencia é o horario_horariofuncionario o resto dos atríbutos são todos iguais.



      Então o que eu gostaria é que todos os horario_horariofuncionario fossem retornados em APENAS UM RESULTADO juntamente com o restante dos atríbutos em vez de retornar um novo resultado para cada horario_horariofuncionario...


      SELECT hf.horario_horariofuncionario,
      hf.codigo_horariofuncionario,
      s.nome_servico,
      ss.tempo_servicosalao,
      ss.preco_servicosalao,
      hf.data_horariofuncionario,
      ds.nome_diasemana,
      f.nome_funcionario,
      f.apelido_funcionario,
      f.foto_funcionario FROM servicosalao ss
      INNER JOIN servico s
      INNER JOIN diasemana ds
      INNER JOIN horariofuncionario hf
      INNER JOIN funcionario f
      INNER JOIN servicofuncionario sf
      ON hf.codigo_funcionario = f.codigo_funcionario
      WHERE sf.codigo_servicosalao = :servico
      AND hf.data_horariofuncionario = :data
      AND ds.nome_diasemana = :diaDaSemana
      AND hf.codigo_statushorariofuncionario = 1;

×

Informação importante

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