Ir ao conteúdo
  • Cadastre-se

deguiannave

Membro Júnior
  • Posts

    8
  • Cadastrado em

  • Última visita

Reputação

0
  1. Tenho uma busca que retorna os valores conforme a imagemQuero exibir estruturado... Uso uns dois IFs dentro de um foreach / While - depois de converter isso em array - e até consigo o que quero, o que pra uma consulta com poucos resultados talvez esteja bom. A questão é que acredito que se retornar muito resultado, muitos "voltas" do foreach/While serão em vão e vai gerar muita "pergunta" com os IFsQual a melhor maneira - com PHP - de mostrar esse valores com essa estruturaEtapa: 1- Semana: 23 - Total de aulas: 6-> 47174-> 47175-> 47176-> 47177-> 47178-> 47191Etapa: 2- Semana: 24 - Total de aulas: 4-> 49368-> 49369-> 49370-> 49371- Semana: 25 - Total de aulas: 1-> 49372- Semana: 26 - Total de aulas: 4-> 49376-> 49377-> 49378-> 49679
  2. Tenho um array multidimensional, que é resultado de uma busca no banco de dados Preciso ordenar de uma forma estruturada... Turma: 1º V02 Aluno: Mikael Disciplina ---------- Trim1--------Trim2-------Trim3 Matemática --------- 1 ------------ 3 ------------- 5 Química ------------- 1 ------------ 9 ------------- 7 Filosofia ------------- 1 ------------ 5 ------------- 6 Aluno: Vinícius Disciplina ---------- Trim1--------Trim2-------Trim3 Matemática --------- 1 ------------ 3 ------------- 5 Química ------------- 1 ------------ 9 ------------- 7 Filosofia ------------- 1 ------------ 5 ------------- 6 ***** Turma: 2º V01 Aluno: Marcos Disciplina ---------- Trim1--------Trim2-------Trim3 Matemática --------- 1 ------------ 3 ------------- 5 Química ------------- 1 ------------ 9 ------------- 7 Filosofia ------------- 1 ------------ 5 ------------- 6 A estrutura do array é essa abaixo Note que só uso no exemplo abaixo 1 Trimestre, Um aluno, uma turma e três disciplinas No resultado geral do banco, esses valores vão variar, ou seja, terei vários alunos, de diversas turmas, com notas variadas em trimestres diferentes e para diversas disciplinas, mas a estrutura do array será a mesma, só aumentará a quantidade de dados Pelo que percebo, precisarei de um loop para as turmas, um loop nos alunos, um loop de disciplinas e outro para notas. Obs.: Esses valores são resultado de um único select - com inner join Quero evitar várias requisições ao banco, mas talvez seja melhor usar mais que um select... não sei exatamente. A pergunta é, qual a melhor maneira de exibir esses dados na estrutura indicada acima usando PHP? #Código Array ([0] => Array([cod_aluno] => 1498[cod_trimestre] => 1[cod_disc] => 430[aluno] => MIKAEL[cod_turma] => 66[turma] => 1º V02[disciplina] => Matemática[nota] => 1.00)[1] => Array([cod_aluno] => 1498[cod_trimestre] => 1[cod_disc] => 507[aluno] => MIKAEL[cod_turma] => 66[turma] => 1º V02[disciplina] => Química[nota] => 1.00)[2] => Array([cod_aluno] => 1498[cod_trimestre] => 1[cod_disc] => 514[aluno] => MIKAEL[cod_turma] => 66[turma] => 1º V02[disciplina] => Filosofia[nota] => 1.00))
  3. Exportei as tabelas... -- phpMyAdmin SQL Dump-- version 4.0.4-- http://www.phpmyadmin.net---- Máquina: localhost-- Data de Criação: 17-Set-2015 às 11:04-- Versão do servidor: 5.6.12-log-- versão do PHP: 5.4.16SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";SET time_zone = "+00:00";/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;/*!40101 SET NAMES utf8 */;---- Estrutura da tabela `tb_alunos`--CREATE TABLE IF NOT EXISTS `tb_alunos` ( `cod_aluno` bigint(20) NOT NULL AUTO_INCREMENT, `ordem` int(2) NOT NULL, `aluno` varchar(200) NOT NULL, `obs` text NOT NULL, `status` int(1) NOT NULL, `cod_turma` bigint(20) NOT NULL, `cod_op` bigint(20) NOT NULL, PRIMARY KEY (`cod_aluno`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2572 ;-- ------------------------------------------------------------ Estrutura da tabela `tb_avaliacoes`--CREATE TABLE IF NOT EXISTS `tb_avaliacoes` ( `cod_avaliacao` bigint(20) NOT NULL AUTO_INCREMENT, `nome_avaliacao` varchar(200) NOT NULL, `cod_disc_prof_turma` bigint(20) NOT NULL, `cod_trimestre` bigint(20) NOT NULL, `cod_grupo_nota` bigint(20) NOT NULL, `valor_avaliacao` decimal(6,2) NOT NULL, `desc_avaliacao` text NOT NULL, `objetivo_avaliacao` text NOT NULL, `obs_avaliacao` text NOT NULL, `cod_tipo_avaliacao` int(11) NOT NULL, `cod_ref_tipo_avaliacao` int(11) NOT NULL, `data_avaliacao` date NOT NULL, `data_criacao` date NOT NULL, `status_avaliacao` int(1) NOT NULL, `status_lancar_nota` int(1) NOT NULL, PRIMARY KEY (`cod_avaliacao`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6095 ;-- ------------------------------------------------------------ Estrutura da tabela `tb_disciplinas`--CREATE TABLE IF NOT EXISTS `tb_disciplinas` ( `cod_disciplina` bigint(20) NOT NULL AUTO_INCREMENT, `disciplina` varchar(200) NOT NULL, `abrev` varchar(8) NOT NULL, PRIMARY KEY (`cod_disciplina`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=68 ;-- ------------------------------------------------------------ Estrutura da tabela `tb_disc_prof_turma`--CREATE TABLE IF NOT EXISTS `tb_disc_prof_turma` ( `cod_disc_prof_turma` bigint(20) NOT NULL AUTO_INCREMENT, `cod_professor` bigint(20) NOT NULL, `cod_disciplina` bigint(20) NOT NULL, `cod_turma` bigint(20) NOT NULL, `ch` bigint(20) NOT NULL, `cod_op` bigint(20) NOT NULL, PRIMARY KEY (`cod_disc_prof_turma`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=810 ;-- ------------------------------------------------------------ Estrutura da tabela `tb_notas`--CREATE TABLE IF NOT EXISTS `tb_notas` ( `cod_nota` int(11) NOT NULL AUTO_INCREMENT, `valor_nota` decimal(6,2) NOT NULL, `valor_nota_rp` decimal(6,2) NOT NULL, `valor_nota_maior` decimal(6,2) NOT NULL, `nfez` int(11) NOT NULL, `cod_aluno` int(11) NOT NULL, `cod_avaliacao` int(11) NOT NULL, `data_cadastro` datetime NOT NULL, `obs` text NOT NULL, `status_nota` int(1) NOT NULL, PRIMARY KEY (`cod_nota`), UNIQUE KEY `cod_aluno` (`cod_aluno`,`cod_avaliacao`), UNIQUE KEY `cod_aluno_2` (`cod_aluno`,`cod_avaliacao`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=209274 ;-- ------------------------------------------------------------ Estrutura da tabela `tb_turmas`--CREATE TABLE IF NOT EXISTS `tb_turmas` ( `cod_turma` bigint(20) NOT NULL AUTO_INCREMENT, `turma` varchar(200) NOT NULL, `serie` varchar(10) NOT NULL, `turno` varchar(50) NOT NULL, `nivel` varchar(50) NOT NULL, PRIMARY KEY (`cod_turma`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=82 ;/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
  4. Minha estrutura é assim.. Como fica essa união de duas consultas? *tb_alunosid_alunonomeid_turma*tb_turmasid_turmaturma*tb_disciplinasid_disciplinasid_disciplinadisciplina*tb_disc_turmaid_disc_turmaid_discid_turma*tb_avaliacoesid_avaliacaoid_disc_turmatrimestrevalor*tb_notasid_notaid_avaliacaoid_alunonota select al.id_aluno, al.aluno,d.disciplina,sum(nt.nota) as tt_notafrom tb_notas ntinner join tb_avaliacoes avon av.id_avaliacao = nt.id_avaliacaoinner join tb_alunos alon al.id_aluno = nt.id_alunoinner join tb_disc_turma dton dt.id_disc_turma = av.id_disc_turmainner join tb_disciplinas don d.cod_disciplina = dt.cod_disciplinawhere av.trimestre = 1 group by al.id_aluno, dt.id_disc_turma
  5. Pessoal, não sei se dará para explicar muito bem... Tenho uma tabela de alunos e uma tabela de notas... relacionados pelo id_aluno... Na tabela notas, tenho um campo que é o id da matéria, ou seja, para que o aluno tenha determinada nota em determinada matéria Preciso selecionar todos os alunos que tiveram nota maior que 20, por exemplo... para isso usei tranquilamente o having... where... A questão é que preciso selecionar todos os alunos que tem nota maior que vinte, so que tem que ser em todas as matérias... ou seja, se tem 5 matérias, e o aluno tem notas maiores que 20 em quatro matérias, ele não pode entrar na consulta, pois teria que ter nota maior que 20 em todas...
  6. Encontrei essa função na internet, para renomear arquivos com VBA... testei no meu Excel e funcionou tranquilo, mas preciso fazer umas alterações. Preciso criar várias cópia de um arquivo em um pendrive... Por exemplo o arquivo c:\temp\logo.jpg copiar 3 vezes para o pendrive, com os nomes logo1.jpg logo2.jpg logo3.jpg fiz um for, executando a cada laço a função VbCopyFolder, e até funcionou, o problema é que para cada laço ele abre uma barra de progresso da cópia... quero que para todos os arquivos sejam abertas apenas uma barra de progresso da cópia... só sendo fechada quando todos os arquivos forem copiados Public Declare Function SHFileOperation Lib "shell32.dll" _Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As LongPublic Const FO_COPY = &H2Public Type SHFILEOPSTRUCT hWnd As Long wFunc As Long pFrom As String pTo As String fFlags As Integer fAnyOperationsAborted As Long hNameMappings As Long lpszProgressTitle As LongEnd TypePublic Sub VBCopyFolder(ByRef strSource As String, ByRef strTarget As String) Dim op As SHFILEOPSTRUCT With op .wFunc = FO_COPY .pTo = strTarget .pFrom = strSource .fFlags = FOF_SIMPLEPROGRESS End With SHFileOperation opEnd Sub
  7. Obrigado pela colaboração diff, quando eu disse array so na hora de mostrar esses valores... no caso acima, como ficaria pra listar os valores? quanto a consulta, usando o join parece bem melhor... vou tentar!!!
  8. Olá pessoal, Estou trabalhando em um código que as vezes gera muita consulta ao banco de dados (Mysql). Então surgiu uma dúvida, o que é mais rápido e melhor para o código? 1. Fazer uma consulta no banco, pegando todos os valores que preciso, colocar esses valores em um array e depois mostrar os valores chamando esse array 2. Toda vez que precisar de um valor específico, buscar direto no banco de dados Vou tentar explicar um pouco mais Aluno **** Nota **** Falta José ***** 50 **** 3 Maria ***** 50 **** 4 Robert **** 35 ***** 1 Marta **** 45 **** 0 Vamos lá então A tabela nota é uma e a tabela faltas é outra Nesse caso o que é melhor? 1. uma unica consulta usando join e todas as tabelas, depois colocar me um array e mostrar os valores 1. consulto tabela aluno e coloco em um array. Consulto tabela nota e coloco em um array usando o codigo do aluno como indice. consulto tabela notas e coloco em um array também usando o código do aluno como índice. Depois mostro os alunos e atraves do codigo do aluno mostro o array nota e o array faltas. 2. uma consulta na tabela alunos e depois, a cada linha uma consulta na tabela notas, usando o where pelo código do aluno e também uma consulta na tabela faltas, usando também where. 3. consultar aluno e nota com um join, e depois, a cada linha uma consulta na tabela faltas usando o where pelo código do aluno

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...