-
Total de itens
11 -
Registro em
-
Última visita
Sobre Lúcio Flávio da Silva Sales

Lúcio Flávio da Silva Sales's Achievements
0
Reputação
-
Lúcio Flávio da Silva Sales alterou sua foto pessoal
-
Entendi a ideia dessa função. Nela eu posso definir em que ordem as questões virão. Mas ela ainda gera um relatório, e para fazer as alternâncias na ordem das questões e das alternativas eu teria que alterá-la para cada tipo de prova. O que eu tento fazer é criar uma variável com o select para cada questão. Nela vai a pergunta e as alternativas. Quando eu conseguir passar essas variáveis, então consigo montar a prova colocando a pergunta e as alternativas correspondentes em qualquer ordem na prova, e também alterando a ordem das alternativas em cada questão. A minha dificuldade é passar essas consultas numa chamada única do arquivo onde já tenho as questões e alternativas posicionadas em locais diferentes em cada prova. Por enquanto estou tendo que fazer as consultas todas em cada prova: È um exemplo bem abreviado. Estou omitindo boa parte do código para facilitar a escrita. Prova 1: $sql1 = "select * questoes where id = 1" $sql2 = "select * questoes where id = 2" Questão 1 - $sql1['questão'] (A) $sql1['alternativa A'] (B) $sql1['alternativa B'] (C) $sql1['alternativa C'] (D) $sql1['alternativa D'] (E) $sql1['alternativa E'] Questão 2 - $sql2['questão'] (A) $sql2['alternativa A'] (B) $sql2['alternativa B'] (C) $sql2['alternativa C'] (D) $sql2['alternativa D'] (E) $sql2['alternativa E'] Prova 2: $sql1 = "select * questoes where id = 1" $sql2 = "select * questoes where id = 2" Questão 1 - $sql2['questão'] (A) $sql2['alternativa E'] (B) $sql2['alternativa A'] (C) $sql2['alternativa C'] (D) $sql2['alternativa B'] (E) $sql2['alternativa D'] Questão 2 - $sql1['questão'] (A) $sql1['alternativa C'] (B) $sql1['alternativa A'] (C) $sql1['alternativa E'] (D) $sql1['alternativa D'] (E) $sql1['alternativa B'] É assim que estou conseguindo fazer. Se eu conseguir centralizar as consultas ao banco de dados num arquivo só, a escrita da página da prova vai ficar enxuta. Fico muito grato pelo esforço!
-
ObrIgado, Frank, meu professor! Vou ver como fizeste a passagem da variavel. Pode ser que eu tenha omitido alguma informaçao. Eu preciso fazer as consultas separadas, porque cada uma corresponde a uma questao da prova e quero mudar a posiçao da questao de acordo com o tipo de prova. então, fazer por foreach me parece não permitir fazer essas alteraçoes de posiçao da questao e das alternativas. O problema e que como são variaveis contendo listas, não estou sabendo retornar para a chamada da funçao.
-
Estou tendo dificuldade de passar essas querys por objeto: A linha return $listarProvas; do arquivo Prova.php não repassa as variáveis $prova1 e $prova2 chamadas na linha $listar_questoes = $listar_questoes->ListarProvas(); do arquivo prova.php. Arquivo onde se encontra a função: Prova.php <?php Class Provas { public function ListarProvas() { $objConexao = new Conexao(); $conexao = $objConexao->getConexao(); $sql = "select * from questoes where Id = 1"; $resposta = $conexao->query($sql); $prova1 = $resposta->fetch_assoc(); $sql = "select * from questoes where Id = 2"; $resposta = $conexao->query($sql); $prova2 = $resposta->fetch_assoc(); $listarProvas = new Provas($prova1,$prova2); return $listarProvas; } } ?> Arquivo onde os resultados devem ser apresentados prova.php <?php $listar_questoes = new Provas(); $listar_questoes = $listar_questoes->ListarProvas(); Questão 1: echo (isset ($prova1["Questao"])?$prova1["Questao"]:""); (A) echo(isset ($prova1["Alt_A"])?$prova1["Alt_A"]:""); (B) php echo(isset ($prova1["Alt_B"])?$prova1["Alt_B"]:""); (C) php echo(isset ($prova1["Alt_C"])?$prova1["Alt_C"]:""); (D) php echo(isset ($prova1["Alt_D"])?$prova1["Alt_D"]:""); (E) php echo(isset ($prova1["Alt_E"])?$prova1["Alt_E"]:""); Questão 2: echo (isset ($prova2["Questao"])?$prova2["Questao"]:""); (A) echo(isset ($prova2["Alt_A"])?$prova2["Alt_A"]:""); (B) echo(isset ($prova2["Alt_B"])?$prova2["Alt_B"]:""); (C) echo(isset ($prova2["Alt_C"])?$prova2["Alt_C"]:""); (D) echo(isset ($prova2["Alt_D"])?$prova2["Alt_D"]:""); (E) echo(isset ($prova2["Alt_E"])?$prova2["Alt_E"]:""); ?>
-
Estou quase conseguindo, só falta um pequeno detalhe: Eis a query que consegui fazer para marcar os acertos e erros: set @nota_matematica = 0, @nota_portugues = 0, @nota_fisica = 0; SELECT autor.nome_autor, resposta.Cand_id, resposta.Prova, IF(resposta.Resp_Questao_1 = gabarito.Solucao_Questao_1, 'CERTO' , 'ERRADO') AS Result_Questao_1, IF(resposta.Resp_Questao_1 = gabarito.Solucao_Questao_1, @nota_fisica = @nota_fisica + 1, @nota_fisica) AS Ponto_fisica, IF(resposta.Resp_Questao_2 = gabarito.Solucao_Questao_2, 'CERTO', 'ERRADO') AS Result_Questao_2, IF(resposta.Resp_Questao_2 = gabarito.Solucao_Questao_2, @nota_fisica = @nota_fisica + 1, @nota_fisica) AS Ponto_fisica, IF(resposta.Resp_Questao_3 = gabarito.Solucao_Questao_3, 'CERTO', 'ERRADO') AS Result_Questao_3, IF(resposta.Resp_Questao_3 = gabarito.Solucao_Questao_3, @nota_matematica = @nota_matematica + 1, @nota_matematica) AS Ponto_matematica, IF(resposta.Resp_Questao_4 = gabarito.Solucao_Questao_4, 'CERTO', 'ERRADO') AS Result_Questao_4, IF(resposta.Resp_Questao_4 = gabarito.Solucao_Questao_4, @nota_matematica = @nota_matematica + 1, @nota_matematica) AS Ponto_matematica, IF(resposta.Resp_Questao_5 = gabarito.Solucao_Questao_5, 'CERTO', 'ERRADO') AS Result_Questao_5 IF(resposta.Resp_Questao_5 = gabarito.Solucao_Questao_5, @nota_portugues = @nota_portugues + 1, @nota_portugues) AS Ponto_portugues, IF(resposta.Resp_Questao_6 = gabarito.Solucao_Questao_6, 'CERTO', 'ERRADO') AS Result_Questao_6, IF(resposta.Resp_Questao_6 = gabarito.Solucao_Questao_6, @nota_portugues = @nota_portugues + 1, @nota_portugues) AS Ponto_portugues FROM gabarito LEFT JOIN resposta on resposta.Prova = gabarito.Prova LEFT JOIN autor on autor.id = resposta.Cand_id ORDER BY resposta.Cand_id ASC; O detalhe que falta é a incrementação do valor da nota, que não consigo realizar. A declaração "@nota_fisica = @nota_fisica + 1" não faz efeito, torna o valor da nota igual a zero. Não consegui descobrir como incrementar valor às variáveis das notas. Conteúdo inicial: Tenho dificuldade em fazer a consulta com funções comparativas em SQL, de maneira a automatizar o resultado, classificando os candidatos em ordem decrescente de pontuação. No php implementei a indicação do acerto e erro, o cálculo da pontuação, mas não fica ordenado. Preciso da ajuda dos experientes. Obrigado! autor Id Nome Cidade UF Fone Email Senha Nascimento Experiencia Prova 1 João Catende PE NULL 0 1 2 José Palmares PE NULL 0 1 3 Lucas Barreiros PE NULL 0 1 resposta Id Cand_id Prova Tentativa Resp_Questao_1 Resp_Questao_2 Resp_Questao_3 Resp_Questao_4 Resp_Questao_5 1 1 1 NULL A D E C B 2 2 1 NULL C E E C A 3 3 1 NULL B D A A A gabarito Id Prova Solucao_Questao_1 Solucao_Questao_2 Solucao_Questao_3 Solucao_Questao_4 Solucao_Questao_5 1 1 C D E C A Eu quero uma consulta que retorne isso: resultado |Cand_id | Nome | Prova | Questao_1 | Questao_2 | Questao_3 | Questao_4 | Questao_5 | Pontos | | 2 | José | 1 | CERTO | ERRADO | CERTO | CERTO | CERTO | 4 | | 1 | João | 1 | ERRADO | CERTO | CERTO | CERTO | ERRADO | 3 | | 3 | Lucas| 1 | ERRADO | CERTO | ERRADO | ERRADO | CERTO | 2 | A query que estou usando no php é essa: $sql = "SELECT autor.nome_autor, resposta.Cand_id, resposta.Prova, resposta.Resp_Questao_1, resposta.Resp_Questao_2, resposta.Resp_Questao_3, resposta.Resp_Questao_4, resposta.Resp_Questao_5, gabarito.Solucao_Questao_1, gabarito.Solucao_Questao_2, gabarito.Solucao_Questao_3, gabarito.Solucao_Questao_4, gabarito.Solucao_Questao_5 FROM gabarito LEFT JOIN resposta on resposta.Prova = gabarito.Prova LEFT JOIN autor on autor.id = resposta.Cand_id ORDER BY resposta.Cand_id ASC"; O problema é que eu não sei como usar a função IF no sql, então não tenho como calcular a pontuação para ordenar ainda na query. Consigo utilizar a query para no php fazer as comparações entre os campos e calcular a pontuação. Mas no foreach ainda não há calculo do resultado para ordenar. Eu só quero saber onde encaixar a função IF no sql. Se alguém precisar, deixo o sql do BD: CREATE TABLE autor ( id int(11) NOT NULL, nome_autor varchar(80) NOT NULL, cidade_autor varchar(50) DEFAULT NULL, uf_autor varchar(50) DEFAULT NULL, fone_autor varchar(40) DEFAULT NULL, email_autor varchar(50) NOT NULL, senha_autor varchar(50) NOT NULL, observacoes_autor varchar(50) DEFAULT NULL, nasc_usuario date DEFAULT NULL, exp_usuario int(11) DEFAULT NULL, tipo_prova int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; -- -- Extraindo dados da tabela autor INSERT INTO autor (id, nome_autor, cidade_autor, uf_autor, fone_autor, email_autor, senha_autor, observacoes_autor, nasc_usuario, exp_usuario, tipo_prova) VALUES (1, 'João', 'Catende', 'PE', '', '', '', '', null, 0, 1), (2, 'José', 'Palmares', 'PE', '', '', '', '', null, 0, 1), (3, 'Lucas', 'Barreiros', 'PE', '', '', '', '', null, 0, 1); select * from autor; CREATE TABLE `gabarito` ( `Id` int(2) NOT NULL, `Prova` int(2) DEFAULT NULL, `Solucao_Questao_1` varchar(720) DEFAULT NULL, `Solucao_Questao_2` varchar(720) DEFAULT NULL, `Solucao_Questao_3` varchar(720) DEFAULT NULL, `Solucao_Questao_4` varchar(720) DEFAULT NULL, `Solucao_Questao_5` varchar(720) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; -- -- Extraindo dados da tabela `gabarito` -- INSERT INTO `gabarito` (`Id`, `Prova`, `Solucao_Questao_1`, `Solucao_Questao_2`, `Solucao_Questao_3`, `Solucao_Questao_4`, `Solucao_Questao_5`) VALUES (1, 1, 'C', 'D', 'E', 'C', 'A'); select * from gabarito; CREATE TABLE `resposta` ( `Id` int(11) NOT NULL, `Cand_id` varchar(7) DEFAULT NULL, `Prova` varchar(5) DEFAULT NULL, `Tentativa` int(1) DEFAULT NULL, `Resp_Questao_1` varchar(614) DEFAULT NULL, `Resp_Questao_2` varchar(614) DEFAULT NULL, `Resp_Questao_3` varchar(614) DEFAULT NULL, `Resp_Questao_4` varchar(614) DEFAULT NULL, `Resp_Questao_5` varchar(614) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; -- -- Extraindo dados da tabela `resposta` -- INSERT INTO `resposta` (`Id`, `Cand_id`, `Prova`, `Tentativa`, `Resp_Questao_1`, `Resp_Questao_2`, `Resp_Questao_3`, `Resp_Questao_4`, `Resp_Questao_5`) VALUES (1, '1', '1', null, 'A', 'D', 'E', 'C', 'B'), (2, '2', '1', null, 'C', 'E', 'E', 'C', 'A'), (3, '3', '1', null, 'B', 'D', 'A', 'A', 'A'); select * from resposta;
-
Alterar dados com método getUsuario
pergunta respondeu ao Lúcio Flávio da Silva Sales de Lúcio Flávio da Silva Sales em Tutoriais & Dicas - PHP
Só para contribuir: $sql = "INSERT INTO Usuarios (nome,email,senha,endereco) VALUES Linha 45, classe Usuario, função Cadastrar. A tabela criada é usuarios, por isso estava dando erro. Alterei e ficou perfeito. -
Alterar dados com método getUsuario
pergunta respondeu ao Lúcio Flávio da Silva Sales de Lúcio Flávio da Silva Sales em Tutoriais & Dicas - PHP
Frank, estou testando teu código! Ficou maravilhoso. Consegui carregar os dados na sessão e alterá-los. Isso me traz uma alegria imensa. Vou te mandar um e=mail falando mais. Obrigado, meu Sinatra do php! -
Alterar dados com método getUsuario
pergunta respondeu ao Lúcio Flávio da Silva Sales de Lúcio Flávio da Silva Sales em Tutoriais & Dicas - PHP
Obrigado, Frank! Testei aqui e ficou bom! Se não for pedir demais, eu queria saber a função que carrega os dados no formulário para serem alterados. Acho que era isso a que se propunha o da aula do SENAC. Vou tentar com o estilo teu no código do SENAC. O problema naquele código é que ele dá a instrução com uso de (['usuario_id']) na função, e isso está sendo recusado. As [] dentro dos (). -
Muito obrigado, Frank K Hosaka!
-
Estou tentando terminar a parte de alteração de dados de usuário num curso do SENAC, mas o negócio está enrolado. Inicialmente vem uma imagem com o código abaixo para ser acrescentado na view index.php, que chama a sessão e busca o id do usuário: if($resposta == "Sucesso") { session_start(); $_SESSION["usuario_id"] = $objUsuario->getId(); header("Location: http://localhost/ecommerce/Views/Produto/listagem_produtos.php");} É mandado fazer um método no arquivo usuario_controller.php, para receber o id do usuário: <?php ... public function getUsuario($_SESSION["usuario_id"]) { $sql = "SELECT * FROM Usuarios WHERE id = $id"; return $_SESSION['usuario_id']; } Não há instruções específicas para criar o método, apenas é dito para fazer de acordo com os conhecimentos obtidos nas etapas anteriores, embora eu discorde que os conhecimentos anteriores sejam suficientes para deduzir a escrita dessa função. As instruções são as seguintes: "Na página de edição, vamos iniciar a sessão e criar uma variável $usuario, que vai receber um usuário do método getUsuario($_SESION[‘usuario_id’]), que deve ser criado no seu respectivo controller. Esse método recebe como parâmetro o id do usuário, que armazenamos na variável $_SESSION, seleciona o usuário através da instrução “SELECT * FROM Usuarios WHERE id = $id” e retorna o resultado obtido. Nosso código na view fica como na imagem a seguir". Na imagem vem esse código que deve ser usado para criar o arquivo editar_usuario.php session_start(); $usuario = $controllerUsuario->getUsuario($_SESSION["usuario_id"]); if (isset($_POST['editar'])) { $objUsuario = new Usuario($_POST['nome'], $_POST['email'], $_POST['senha'], $_POST['endereco']); $controllerUsuario = new UsuarioController(); $resposta = $controllerUsuario->Editar($usuario['ID'],$objUsuario); // $resposta = $controllerUsuario->editaUsuario($usuario['ID'],$objUsuario); // Mudei o nome do método pois não existe método com o nome editaUsuario. if($resposta == "Sucesso"){ $usuario = $controllerUsuario->getUsuario($_SESSION["usuario_id"]); // Não entendi o objetivo dessa linha. Ela está declarada na abertura da sessão. echo "Conta salva com sucesso!"; }else{ echo $resposta; } } Mas a linha 32 do usuario_controller.php: public function getUsuario($_SESSION["usuario_id"]) { gera o seguinte erro quando acionado o botão para logar no index.php: Parse error: syntax error, unexpected token "[", expecting ")" in /opt/lampp/htdocs/ecommerce/Controllers/usuario_controller.php on line 32 Já pesquisei muito sobre essa escrita, mas não encontro nada parecido para comparar com o essa construção suugerida no curso. Vou passar o link do arquivo php_senac.zip com os arquivos index.php e usuario_controller.php, caso seja necessário analisar mais detalhes do código. Também passo a apostila com as instruções do curso. http://luciocatende.com/php_senac.zip É lamentável que a tutoria do curso é deficiente no auxílio ao aluno. Tenho encontrado muita dificuldade para realizar a última etapa do curso, que trata da alteração e exclusão de registros no banco de dados. Agradeço se alguém puder me ajudar.
-
Estou tentando terminar a parte de alteração de dados de usuário num curso do SENAC, mas o negócio está enrolado. Inicialmente vem uma imagem com o código abaixo para ser acrescentado na view index.php, que chama a sessão e busca o id do usuário: if($resposta == "Sucesso") { session_start(); $_SESSION["usuario_id"] = $objUsuario->getId(); header("Location: http://localhost/ecommerce/Views/Produto/listagem_produtos.php");} É mandado fazer um método no arquivo usuario_controller.php, para receber o id do usuário: <?php ... public function getUsuario($_SESSION["usuario_id"]) { $sql = "SELECT * FROM Usuarios WHERE id = $id"; return $_SESSION['usuario_id']; } Não há instruções específicas para criar o método, apenas é dito para fazer de acordo com os conhecimentos obtidos nas etapas anteriores, embora eu discorde que os conhecimentos anteriores sejam suficientes para deduzir a escrita dessa função. As instruções são as seguintes: "Na página de edição, vamos iniciar a sessão e criar uma variável $usuario, que vai receber um usuário do método getUsuario($_SESION[‘usuario_id’]), que deve ser criado no seu respectivo controller. Esse método recebe como parâmetro o id do usuário, que armazenamos na variável $_SESSION, seleciona o usuário através da instrução “SELECT * FROM Usuarios WHERE id = $id” e retorna o resultado obtido. Nosso código na view fica como na imagem a seguir". Na imagem vem esse código que deve ser usado para criar o arquivo editar_usuario.php session_start(); $usuario = $controllerUsuario->getUsuario($_SESSION["usuario_id"]); if (isset($_POST['editar'])) { $objUsuario = new Usuario($_POST['nome'], $_POST['email'], $_POST['senha'], $_POST['endereco']); $controllerUsuario = new UsuarioController(); $resposta = $controllerUsuario->Editar($usuario['ID'],$objUsuario); // $resposta = $controllerUsuario->editaUsuario($usuario['ID'],$objUsuario); // Mudei o nome do método pois não existe método com o nome editaUsuario. if($resposta == "Sucesso"){ $usuario = $controllerUsuario->getUsuario($_SESSION["usuario_id"]); // Não entendi o objetivo dessa linha. Ela está declarada na abertura da sessão. echo "Conta salva com sucesso!"; }else{ echo $resposta; } } Mas a linha 32 do usuario_controller.php: public function getUsuario($_SESSION["usuario_id"]) { gera o seguinte erro quando acionado o botão para logar no index.php: Parse error: syntax error, unexpected token "[", expecting ")" in /opt/lampp/htdocs/ecommerce/Controllers/usuario_controller.php on line 32 Já pesquisei muito sobre essa escrita, mas não encontro nada parecido para comparar com o essa construção suugerida no curso. Vou passar o link do arquivo php_senac.zip com os arquivos index.php e usuario_controller.php, caso seja necessário analisar mais detalhes do código. Também passo a apostila com as instruções do curso. http://luciocatende.com/php_senac.zip É lamentável que a tutoria do curso é deficiente no auxílio ao aluno. Tenho encontrado muita dificuldade para realizar a última etapa do curso, que trata da alteração e exclusão de registros no banco de dados. Agradeço se alguém puder me ajudar.