Jump to content
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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By 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, }); } }); }  
    • By sergiosfpereira
      Boa tarde a todos,
       
      Estou estudando MVC e me deparei com a seguinte situação:

      Tenho uma View que precisa receber dados de dois Models diferentes, então no controller desta View eu tenho a função abaixo:
      public function teste($id) { $this->view->a = $this->getOneA($id); $this->loadModel('b'); $this->view->b = $this->model->getOneB($id); $this->view->render('app/teste'); } O cenário acima me retorna o esperado, pega os dados de A e de B e os deixa disponiveis para a View.
       
      Está correto utilizar esse método ?
       
      Se sim, eu deveria carregar o Model "b" no __construct do controller "a"  ou diretamente na função do controller "a" como neste exemplo?
       
      Se não, qual a melhor maneira de obter dados de diferentes Models?
       
      OBS: todos os controllers são filhos do controller principal e todos os models são filhos do model principal.
       
      E me perdoem se eu estiver falando bobagem, como disse, estou aprendendo e a finalidade aqui é didatica e agradeço a quem puder contribuir.
    • By Rzorr
      Bom dia,
              eu tenho um  site de imóveis, sou corretor, ele está com alguns problemas na URL, comprei esse script e venho fazendo algumas alterações nele, sei o básico, cadastrar, deletar, buscar, update, mas o que acontece esse site foi construido com MVC e confesso parei de estudar PHP faz muito tempo, e não entendo nada de MVC, abaixo o código da busca e como forma o link é montado.
          No site o link fica assim: /imoveis/lista/referencia/referencia/categoria/comprar/tipo/tipo/cidade/Camboriú/bairro/bairro#busca nesse exemplo fiz uma busca pela cidade!
         Se clico no menu em vendas o link fica assim: /imoveis/lista/referencia/referencia/categoria/comprar/tipo/tipo/cidade/cidade/bairro/bairro#busca
      pessoal obrigado pela disposição em ajudar, eu to tentando resolver faz dias, mas não consigo entender a a forma como é construido.
       
      <?php class busca extends controller { public function init(){ } public function inicial(){ $referencia = $this->post('referencia'); $categoria = $this->post('categoria'); $tipo = $this->post('tipo'); $cidade = $this->post('cidade'); $bairro = $this->post('bairro'); if($referencia){ $cidade = "cidade"; $bairro = "bairro"; $tipo = "tipo"; $categoria = "categoria"; } else { $referencia = 'referencia'; if(!$categoria){ $categoria = "categoria"; } if(!$tipo){ $tipo = "tipo"; } if(!$cidade){ $cidade = "cidade"; } if(!$bairro){ $bairro = "bairro"; } } $endereco = DOMINIO."imoveis/lista/referencia/$referencia/categoria/$categoria/tipo/$tipo/cidade/$cidade/bairro/$bairro#busca"; $this->irpara("$endereco"); }  
    • By unset
      Olá, alguém poderia me ajudar a implementar uma paginação de resultados? tenho o modelo mvc abaixo
       
      Controller
      <?php // Load All Posts public function index(){ $posts = $this->postModel->getPosts(); $data = [ 'posts' => $posts ]; $this->view('posts/index', $data); } ?> Model
      <?php // Get All Posts public function getPosts(){ $this->db->query("SELECT *, posts.id as postId, users.id as userId FROM posts INNER JOIN users ON posts.user_id = users.id ORDER BY posts.created_at DESC;"); $results = $this->db->resultset(); return $results; } View
      <?php foreach($data['posts'] as $post) : ?> <div class="card card-body mb-3"> <h4 class="card-title"><?php echo $post->title; ?></h4> <div class="bg-light p-2 mb-3"> Written by <?php echo $post->name; ?> on <?php echo $post->created_at; ?> </div> <p class="card-text"><?php echo $post->body; ?></p> <a class="btn btn-dark" href="<?php echo URLROOT; ?>/posts/show/<?php echo $post->postId; ?>">More</a> </div> <?php endforeach; ?> Como fazer a paginação ?
    • By frlopes
      Pessoal, bom dia.
       
      Tentei fazer o exemplo abaixo do site:
       
      http://www.macoratti.net/15/10/mvc_roles1.htm
       
      E está retornando o seguinte erro quando tento fazer um novo registro:
       
      System.InvalidOperationException: 'The ViewData item that has the key 'Name' is of type 'System.String' but must be of type 'IEnumerable<SelectListItem>'.'
       
      Alguém poderia me ajudar? 
      Obrigada!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.