Ir para conteúdo
Schilin

Listagem de registros feitos por um usuário específico

Recommended Posts

Olá, Estou tentando implementar uma função que exibe uma lista de feedbacks cadastrados por um usuário específico, mas não estou conseguindo. Acredito que seja na classe Feedback o problema, pois dei o "echo" na query que vai para o banco e não printa o idUser. Onde pode estar o problema? 

 

//pagina da listagem do usuário
<?php
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    session_start();

    if($_SESSION['logado']!=1){
        header("Location: ../index.php");
    }
    if($_SESSION['idPermissao'] != 1){
        header("Location: ../index.php");
    }

    include_once $_SERVER['DOCUMENT_ROOT']."/feedback/controle/ControleUsuario.class.php";
    $cControle = new ControleUsuario();       

    
    
    if(isset($_GET['idUserVisualizar'])){              
        $usuario = $cControle->visualizarUsuario($_GET['idUserVisualizar']);       
    }
    if(isset($_GET['idUserSituacao'])){  
        $cControle->situacaoUsuario($_GET['idUserSituacao']);       
    }
    
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Visualizar usuário</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" type="text/css" media="screen" href="main.css">
    <script src="main.js"></script>
</head>
<body>
    <a href="logout.php">sair</a>
    <?php
    
    echo "<h3>Usuário ".$usuario->getLoginUser()."</h3><br>";
    
    
    
        if($_SESSION['idUser'] == $usuario->getIdUser()){
            echo "Situação: Ativo";
        }
        else{
            if($usuario->getIdSituacao() == 0){ 
                echo "Situação: Inativo    |    <a href='visualizarUsuario.php?idUserSituacao=".$usuario->getIdUser()."'>Ativar</a><br>";
            }
            else{
                echo "Situação: Ativo    |    <a href='visualizarUsuario.php?idUserSituacao=".$usuario->getIdUser()."'>Desativar</a><br>";
            }
        }
        
    if($usuario->getIdPermissao() == 2){
        $feedbacksRealizados = $cControle->feedbacksRealizados($_GET['idUserVisualizar']);
        echo "Feedbacks realizados: ".$feedbacksRealizados->getFeedbacksRealizados()."    |    <a href='listaFeedbacks.php?idUserListaFeedbacks=".$usuario->getIdUser()."'>Visualizar feedbacks</a>";
        
    }    
    ?>

    
    <br><br><a href="listaUsuarios.php"><<<:</a>        
</body>
</html>
// Classe ControleFeedback.class
<?php
    include_once $_SERVER['DOCUMENT_ROOT']."/feedback/modelo/Feedback.class.php";   

    class ControleFeedback{        
        public function listarFeedbacksUser($idUser){
            echo "<br>teste2: ".$idUser."<br>";
            $feedback = new Feedback($idUser);
            $feedbacks = $feedback->listarFeedbacksUser();
            return $feedbacks;
        }
    }
?>
// Classe Feedback.class

<?php
include_once $_SERVER['DOCUMENT_ROOT']."/feedback/db/MySQL.class.php"; 

    class Feedback{
        private $idFeedback;
        private $nomeCliente;
        private $idInstalador;
        private $atendimento;
        private $relatoSatisfacao;
        private $antigaOperadora;
        private $notaInstalacao;
        private $idUser;

        public function __construct($idFeedback = null, $nomeCliente = null, $idInstalador = null, 
                                    $atendimento = null, $relatoSatisfacao = null, $antigaOperadora = null, 
                                    $notaInstalacao = null, $idUser = null){
            $this->idFeedback = $idFeedback;
			$this->nomeCliente = $nomeCliente;
			$this->idInstalador = $idInstalador;
            $this->atendimento  = $atendimento;
			$this->relatoSatisfacao  = $relatoSatisfacao;
			$this->antigaOperadora = $antigaOperadora;
			$this->notaInstalacao = $notaInstalacao;
            $this->idUser = $idUser;
        
        }


        public function getIdFeedback(){
			return $this->idFeedback;
		}		
		public function setIdFeedback($idFeedback){
			$this->idFeedback = $idFeedback;
        }

        public function getNomeCliente(){
			return $this->nomeCliente;
		}		
		public function setNomeCliente($nomeCliente){
			$this->nomeCliente = $nomeCliente;
        }

        public function getIdInstalador(){
			return $this->idInstalador;
		}		
		public function setIdInstalador($idInstalador){
			$this->idInstalador = $idInstalador;
        }

        public function getAtendimento(){
			return $this->atendimento;
		}		
		public function setAtendimento($atendimento){
			$this->atendimento = $atendimento;
        }

        public function getRelatoSatisfacao(){
			return $this->relatoSatisfacao;
		}		
		public function setRelatoSatisfacao($relatoSatisfacao){
			$this->relatoSatisfacao = $relatoSatisfacao;
        }

        public function getAntigaOperadora(){
			return $this->antigaOperadora;
		}		
		public function setAntigaOperadora($antigaOperadora){
			$this->antigaOperadora = $antigaOperadora;
        }

        public function getNotaInstalacao(){
			return $this->notaInstalacao;
		}		
		public function setNotaInstalacao($notaInstalacao){
			$this->notaInstalacao = $notaInstalacao;
        }

        public function getIdUser(){
			return $this->idUser;
		}		
		public function setIdUser($idUser){
			$this->idUser = $idUser;
        }


		public function listarFeedbacksUser(){			
			$con = new MySQL();
			$sql = "SELECT * FROM feedback WHERE idUser = $this->idUser";
			echo $sql;
			die;
			$resultados = $con->consulta($sql);			
			if(!empty($resultados)){
				$feedbacks = array();
				foreach($resultados as $resultado){
					$feedback = new Feedback();
					$feedback->setIdFeedback($resultado['idFeedback']);
					$feedback->setNomeCliente($resultado['nomeCliente']);
					$feedback->setIdInstalador($resultado['idInstalador']);
					$feedback->setAtendimento($resultado['atendimento']);
					$feedback->setRelatoSatisfacao($resultado['relatoSatisfacao']);		
					$feedback->setAntigaOperadora($resultado['antigaOperadora']);	
					$feedback->setNotaInstalacao($resultado['notaInstalacao']);	
					$feedback->setIdUser($resultado['idUser']);
					$feedbacks[] = $feedback;
				}
				return $feedbacks;
			}else{
				return false;
			}
		}	
			
	}		




        
		
                                                                    

Esta é a sequência de testes que eu fiz, ele da o "echo" dos IDs certos, mas na classe Feedback parece que ele não recebe então printa a query sem o idUser. O problema é na função?

 

image (3).png

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 Jafreal
      Bom dia a todos
       
      Criei um programa em MVC, que utiliza duas tabelas customizadas. Tipo Pai e Filho. Similar as tabelas SC5 e SC6. Estou usando FWMBrowse, por isso utilizei a relação abaixo no Static Function ModelDef.
       
      Local oModel         := Nil
      Local oStPai         := FWFormStruct(1, 'SZD')
      Local oStFilho         := FWFormStruct(1, 'SZE')
      Local aSZERel        := {}
       
      oModel := MPFormModel():New('zMVCMd3M')
      oModel:AddFields('SZDMASTER',,oStPai)
      oModel:AddGrid('SZEDETAIL','SZDMASTER',oStFilho,,,,,)  
       
      aAdd(aSZERel, {'ZE_FILIAL' ,'ZD_FILIAL' } )
      aAdd(aSZERel, {'ZE_EDITAL' ,'ZD_EDITAL' } ) 
       
      oModel:SetRelation('SZEDETAIL', aSZERel, SZE->(IndexKey(1))) 
      oModel:GetModel('SZEDETAIL'):SetUniqueLine({"ZE_FILIAL","ZE_EDITAL","ZE_CODPROD"})     
      oModel:SetPrimaryKey({})
       
      Return oModel
       
      O problema é que na hora da gravação na tabela filho ele não grava o campo filial(ZE_FILIAL), mas grava o campo edital(ZE_EDITAL). Alguem já passou por isso?
       
    • Por Sapinn
      Pessoal estou com um dúvida terrivel não consigo checar os paramentros passados pela url ele sempre pagar anterior o que fazer? 
      Vejam o codigo:: 
        <?php     class Rota     {         private $controlador = 'Paginas';         private $metodo = 'index';         private $parametros = [];         public function __construct()         {             $url = $this->url() ? $this->url() : [0];             if (file_exists('../app/Controllers/' . ucwords($url[0] . 'php'))) {                 $this->controlador = ucwords($url[0]);                 unset($url[0]);             }             require_once '../app/Controllers/' . $this->controlador . '.php';             $this->controlador = new $this->controlador;             if (isset($url[1])) {                 if (method_exists($this->controlador, $url[1])) {                     $this->metodo = $url[1];                     unset($url[1]);                 }             }             $this->parametros = $url ? array_values($url) : [];             call_user_func_array([$this->controlador, $this->metodo], $this->parametros);             var_dump($this);         }         private function url()         {             $url = filter_input(INPUT_GET, 'url', FILTER_SANITIZE_URL);             if (isset($url)) {                 $url = trim(rtrim($url, '/'));                 $url = explode('/', $url);                 return $url;             }         }     } Minha class Paginas:
      <?php class Paginas{              public function sobre($id){             echo $id."<hr>";         }     } O debug está me retornando:
       
      paginas
      _________________________________________________________________________________________________________________________________________________________________________________________
      object(Rota)#1 (3) { ["controlador":"Rota":private]=> object(Paginas)#2 (0) { } ["metodo":"Rota":private]=> string(5) "sobre" ["parametros":"Rota":private]=> array(1) { [0]=> string(7) "paginas" } }

      url usada: http://localhost/minha_pagina/paginas/sobre

      Ele não deveria gerar um erro e pedir para que eu passasse mais um paramentro na url? Ao invés disso ele só me retorna o método paginas o que fazer?
    • Por acneto.frc
      Olá a todos! Estou modificando algumas funções que utilizam callback para utilizar asyn-await. Uso o padrão MVC. Meu problema é que chamo a função assíncrona na model ela é executada, não retorna erro mas não volta para o controller. Abaixo parte do código.
       
      arquivo routes.js
      const segurosRoutes = require('../controllers/segurosControllers.js');
      module.exports = (app) => {
      app.get('/estagio/movimentacoes/cadastroSeguros', segurosRoutes.segurosGetAll);
      }
      arquivo controllers.js
      const segurosController = require('../models/segurosModels.js');
      module.exports = { segurosGetAll, }
      function segurosGetAll(req, res){
      console.log("Entrando em Controllers Seguros: ")
      segurosController.getAll(function (err, result){
      if(err) {
      console.log("Erro: " + err) throw err;
      }else{ console.log("Resultado "+result)
      }
      })
      }
      arquivo models.js
      const client = require('../../config/conexao.js');
      const moment = require('moment');
      module.exports = {
      getAll,
      }
      async function getAll() {
      m_sql = 'select A.*, B.seg_razaosocial, B.seg_nomefantasia, C.alu_nome, D.usu_username from seguros A left join seguradora B on A.seg_codigo = B.seg_codigo left join usuarios D on A.usu_codigo = D.usu_codigo left join alunos C on A.alu_codigo = C.alu_codigo ';
      console.log("SQL em Seguros...."+m_sql)
      console.log("-----------------------")
      let retorno
      try{
      const retorno = await client.query(m_sql)
      console.log("Retornando da SQL: "+retorno)
      } catch(erro) {
      console.log(erro)
      retorno = erro
      }
      return retorno
      }
       
    • Por acneto.frc
      Tenho uma aplicação WEB NodeJs+Javascript. Na minha view (FILTROS PARA RELATÓRIO) além dos inputs tenho um radio button onde seleciono o tipo de do relatório que será gerado. No meu Controller tenho acesso aos campos inputs (type=text) normalmente mas não tenho acesso aos inputs (type=radio). Abaixo vou colocar parte do código.
       
      <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- As 3 meta tags acima *devem* vir em primeiro lugar dentro do `head`; qualquer outro conteúdo deve vir *após* essas tags --> <title><%= title %></title> <link rel="stylesheet" type="text/css" media="screen" href="/estilos/estilos.css" /> </head> <body> <header> <nav class="menuBase"> <ul> <li><a href="/">Início</a></li> <li><a href="/estagio/relatorios">Voltar</a></li> <li><a href=""> </a></li> </ul> </nav> </header> <main class=frmRelFiltros> <ul class="nav nav-tabs"> <li class="active" id="home-tab"><a data-toggle="tab" href="#pagina1">Relatório de Contratos</a></li> </ul> <div class="tab-content"> <div id="pagina1" class="tab-pane fade in active"> <form action='/contratos/relatorios/RelContratosPrint' method="post" id="relAlunos"> <!-- primeira linha --> <br> <div class="filtros" style="margin:15px"> <div class="row"> <div class="form-group col-md-6 col-md-offset-0"> <label>Código Contrato.:</label> <input type="text" name="cod_ini" value="0"/> A <input type="text" name="cod_fim" value="999999" /> <br> <br> <label>Ativo/Inativo...:</label> <input type="text" name="atv_ini" value="A"/> A <input type="text" name="atv_fim" value="Z" /> <br> <br> <label>Data Cadastro...:</label> <input type="text" name="cad_ini" value="01/01/2000"/> A <input type="text" name="cad_fim" value="31/12/2090" /> <br> <br> <label>Data Vigência...:</label> <input type="text" name="vig_ini" value="01/01/2000"/> A <input type="text" name="vig_fim" value="31/12/2090" /> <br> <br> <label>Sit. Contrato...:</label> <input type="text" name="sit_ini" value="0"/> A <input type="text" name="sit_fim" value="99" /> <br> <br> <label>Código do Curso.:</label> <input type="text" name="cur_ini" value="1"/> A <input type="text" name="cur_fim" value="99" /> <br> <br> </div> <div class="form-group col-md-6 col-md-offset-0"> <label>Código da Empresa.:</label> <input type="text" name="emp_ini" value="1"/> A <input type="text" name="emp_fim" value="9999" /> <br> <br> <label>Centro Integração.:</label> <input type="text" name="cie_ini" value="1"/> A <input type="text" name="cie_fim" value="999"/> <br> <br> <label>Valor da Bolsa....:</label> <input type="text" name="vlr_ini" value="1"/> A <input type="text" name="vlr_fim" value="99999999"/> <br> <br> <br> <div id="opcoesRelContratos" > <p>Selecione o Tipo do Relatório:</p> <input type="radio" id="tipoRel" name="padrao" value="padrao" checked=true> <label for="padrao">Padrao-Conferência</label><br> <input type="radio" id="tipoRel" name="faixa" value="faixa"> <label for="faixa">Faixa Salarial-Estatístico</label><br> <input type="radio" id="tipoRel" name="alunos_empresas" value="alunos_empresas"> <label for="alunos_empresas">Identificação de Alunos por Empresa</label> <br> <input type="radio" id="tipoRel" name="entregas" value="entregas"> <label for="entregas">Pastas de Estágios Entregues</label><br> <input type="radio" id="tipoRel" name="contratos_vencer" value="contratos_vencer"> <label for="contratos_vencer">Contratos a Vencer 30 dias</label> <br> </div> </div> </div> </div> <br> <!-- botões de acão --> <div class="btn-acao" style="margin-bottom: 0px;"> <div class="row"> <div class="col-md-2 col-md-offset-1"> <button id="btn-executarRel" type="submit" class="btn btn-primary btn-block" >Executar </button> </div> <div class="col-md-2 col-md-offset-1"> <button type="button" id="btn-cancelarRel" class="btn btn-primary btn-block">Voltar</button> </div> </div> </div> <br> </form> </div> <!-- tab pagina 1 --> </div> </main> <!-- JavaScript (Opcional) --> <!-- jQuery primeiro, depois Popper.js, depois Bootstrap JS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> <script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script> <script type="text/javascript" src="/js/funcoesCliente.js"></script> <script type="text/javascript" src="/js/script.js"></script> </body> </html>  
       
      Agora o código do routes e controllers. No controllers preciso acessar um elemento radio da view
      *** botão para submeter a view <button id="btn-executarRel" type="submit" class="btn btn-primary btn-block" >Executar </button> *** rota a ser executada ao sonfirmar a execução do relatório <form action='/contratos/relatorios/RelContratosPrint' method="post" id="relAlunos"> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ arquivo: contratosRoutes.js var contratosControllers = require('../controllers/contratosControllers.js'); module.exports = (app) => { app.get('/contratos/relatorios/relContratos', contratosControllers.contratosRel); app.post('/contratos/relatorios/RelContratosPrint', contratosControllers.printContratosRel); } +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ arquivo: contratosControllers.js const alunosController = require('../models/contratosModels.js'); const cnf_ambiente = require('../../config/config.js'); const moment = require('moment'); module.exports = { printContratosRel, } function printContratosRel(req, res){ console.log("Data Inicial Normal: "+req.body.cad_ini) console.log("Data Final Normal..: "+req.body.cad_fim) console.log("++++++++++++++++++++ DATA NO FORMATO DE ENTRADA APÓS O POST ++########################") // ++++++++++++ BAIXO O ERRO document is not defined var radios = document.getElementsById("tipoRel"); for (var i = 0; i < radios.length; i++) { if (radios[i].checked) { console.log("Escolhido: " + radios[i].value); } } cod_i = req.body.cod_ini; cod_f = req.body.cod_fim; atv_i = req.body.atv_ini; atv_f = req.body.atv_fim; cad_i = req.body.cad_ini; cad_f = req.body.cad_fim; vig_i = req.body.vig_ini; vig_f = req.body.vig_fim; sit_i = req.body.sit_ini; sit_f = req.body.sit_fim; cur_i = req.body.cur_ini; cur_f = req.body.cur_fim; emp_i = req.body.emp_ini; emp_f = req.body.emp_fim; cie_i = req.body.cie_ini; cie_f = req.body.cie_fim; vlr_i = req.body.vlr_ini; vlr_f = req.body.vlr_fim; console.log("Relatório >>>>>>>>>>>>>>>>>>>>>>>> "+cad_i + ' - '+ cad_f); alunosController.buscarPrintContratosRel( cod_i, cod_f, vlr_i, vlr_f, sit_i, sit_f, cur_i, cur_f, emp_i, emp_f, cad_i, cad_f, vig_i, vig_f, atv_i, atv_f, cie_i, cie_f, function(err, result){ if(result){ console.log("Encontrei registro de contratos.... Vou tratar das datas.."); for(var i = 0; i < result.length; i++ ){ result[i].cea_dtcadastro = moment(result[i].cea_dtcadastro).format("DD/MM/YYYY"); result[i].cea_dtalteracao = moment(result[i].cea_dtalteracao).format("DD/MM/YYYY"); result[i].cea_vigenciainicial = moment(result[i].cea_vigenciainicial).format("DD/MM/YYYY"); result[i].cea_vigenciafinal = moment(result[i].cea_vigenciafinal).format("DD/MM/YYYY"); } } if (err) { throw err; } else{ res.render('estagios/relatorios/frm_relContratosPrint.ejs', {title: 'Contratos', nomeUsuario: global.nomeUsuario, codigoUsuario: global.codigoUsuario, nomeFormulario: req.originalUrl, obj_contratos: result, }); } }); }  
    • Por Caio Henrique Bottigelli
      Olá, estou desenvolvendo um sistema em asp.net Framework MVC, usando o banco de dados Postgresql. Quando 2 usuários diferentes usam o sistema acontece conflito de informações, por exemplo, no cadastro de clientes, preciso vincular uma pessoa a um determinado cliente, caso 2 usuários estiverem usando, e os 2 fizerem essa ação de vincular pessoas a um cliente, no 2º usuário vai aparecer a pessoa que o 1º usuário vinculou. É como se o sistema estivesse usando uma única Lista e os 2 usuários estivessem compartilhando essa lista.
      As variáveis de conexão não estão estáticas, toda vez que alguém entrar no sistema, vai ser criado uma nova instancia de conexão.
      Alguém sabe como resolver esse conflito de informação entre usuários?
×

Informação importante

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