Ir para conteúdo
Fórum Script Brasil

degui

Membros
  • Total de itens

    14
  • Registro em

  • Última visita

Tudo que degui postou

  1. Estou com uma dúvida e gostaria da ajuda de vocês. Vou descrever a situação para ajudar na resposta. Trabalho em um site que está há 10 anos no ar. O site é feito em Wordpress desde o início e hoje tem milhares de posts publicados. Em 2011, com 2 anos no ar, o site começou a apresentar problemas e ficar fora do ar. O pessoal da hospedagem disse que estava causando sobrecarga e que não teria como manter o site no servidor. Trocamos Temas, deixando o padrão do wp, desinstalamos plugins, reparamos banco, mas de nada adiantou. Trocamos então de servidor, mas perdemos tudo, tendo que começar o site do zero. Desde 2011 até o momento, passamos por instabilidades, mas o site se manteve no ar. Essa semana tivemos um problema mais sério e o site ficou fora do ar. A hospedagem informou que o site provocou sobrecarga, o que fez reviver a situação de 2011, quando perdemos tudo. Reparamos banco, excluímos plugins inativos, instalamos outros plugins de otimização e o site voltou ao ar, e está funcionando. Estamos agora para trocar o tema, depois de vários anos com o mesmo. E é aí que surge a dúvida que me trouxe até aqui. Vou deixar algumas opções, com o que entendo ser vantagens e desvantagens, para decidir qual devo seguir. Outras sugestões também são aceitas. Opção 1 Instalar o novo tema no mesmo site que já existe. Vantagem: é o jeito mais simples, pois apenas trocarei o tema. Desvantagem: Posso continuar tendo problemas, pois o banco é o mesmo, com milhares de posts e a sobrecarga pode continuar. Podemos perder todo o conteúdo como aconteceu anteriormente. Opção 2 Mover o site que está hoje no ar para uma pasta e instalar um novo do domínio principal. A estrutura ficaria assim: nossosite.com.br/antigo Assim, tudo que publicarmos daqui pra frente ficaria no site novo, no domínio principal. O conteúdo antigo permanece também, com acesso a pasta antigo. Criaremos links para direcionar par esse conteúdo antigo Vantagem: Começaremos um site novo, limpo, menos risco de perder o conteúdo. Desvantagens: Precisaremos fazer redirecionamento, para não perder ranking no Google. Curtidas que já tem nos posts serão perdidas, pois o endereço mudará. As buscas internas podem não localizar nos dois bancos. Opção 3 Criar um novo site, em uma pasta diferente. Redirecionar para o novo quando acessarem o domínio principal. A estrutura ficaria assim nossosite.com.br/novo No domínio principal ficaria o site antigo, sem publicarmos mais nada nele, mas mantendo tudo que já existe. Vantagem: site novo do zero, menor risco de perde o conteúdo. Tudo que já tem permanece como está, links, curtidas, etc. Desvantagem: URL ficará com a palavra ‘novo’, que não é muito amigável. Não tenho certeza que o antigo funcionará sem o index, já que usarei o index no domínio principal para direcionar para o novo.
  2. 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 ) )Tenho um array multidimensional, que é resultado de uma busca no banco de dadosPreciso ordenar de uma forma estruturada...Turma: 1º V02Aluno: MikaelDisciplina ---------- Trim1--------Trim2-------Trim3Matemática --------- 1 ------------ 3 ------------- 5 Química ------------- 1 ------------ 9 ------------- 7 Filosofia ------------- 1 ------------ 5 ------------- 6 Aluno: ViníciusDisciplina ---------- Trim1--------Trim2-------Trim3Matemática --------- 1 ------------ 3 ------------- 5 Química ------------- 1 ------------ 9 ------------- 7 Filosofia ------------- 1 ------------ 5 ------------- 6 *****Turma: 2º V01Aluno: MarcosDisciplina ---------- Trim1--------Trim2-------Trim3Matemática --------- 1 ------------ 3 ------------- 5 Química ------------- 1 ------------ 9 ------------- 7 Filosofia ------------- 1 ------------ 5 ------------- 6 A estrutura do array é essa acimaNote que só uso no exemplo abaixo 1 Trimestre, Um aluno, uma turma e três disciplinasNo 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 dadosPelo 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 joinQuero 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?
  3. 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 Long Public Const FO_COPY = &H2 Public 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 Long End Type Public 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 op End Sub
  4. 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..
  5. Olá pessoal, Estou trabalhando em um código que as vezes gera muita consulta ao banco de dados. 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
  6. select al.id_aluno, al.aluno, al.turma, re.id, re.de, re.para from alunos al left join remanejamentos re on al.id_aluno = re.id_aluno where (re.de = 30) or ( (al.turma = 30) ola pessoal,com esse codigo quase consegui... na verdade o resultado foi quase satisfatorio, observem que ele fez exatamente o q pedi, com uma pequena exceção... a aluna AMANDA, saiu da turma 30 e foi para a turma 40... depois ela voltou da 40 para a turma 30... no select que consegui, o nome dela aparece duas vezes... so preciso que apareca uma vez, ou seja, o ULTIMO registro feito para ela na tabela remanejamentos... pois como ela já é da turma 30, não preciso dos registros q ela saiu e voltou...
  7. Olá pessoal estou tentando fazer um select mas não estou chegando no resultado esperado tenho uma tabela chamada REMANEJAMENTOS e uma outra chamada ALUNOS quando troco o aluno de turma, e criado um registro na tabela remanejamentos, indicando de qual turma ele saiu e para que turma ele foi... sendo assim, todas as trocas de turmas ficam guardadas. Na tabela alunos, é feito um update, mudando para a turma atual preciso de um select que me retorne a relacao de alunos da turma 30... juntamente com os alunos que já foram um dia da turma 30, ou seja, os alunos que tem na tabela remanejamento com a coluna DE = 30.. resumindo, vai retornar os alunos da turma 30, inclusive os que já foram dessa e turma e sairam para outras turmas observem que os alunos 300 e 400 não pertecem mais a essa turma, mas um dia foram dela... isso e indicado na tabela remanejamentos na coluna DE, onde guarda a turma que o aluno saiu...
  8. Denis Courcy, mais uma vez obrigado, infelizmente não consegui quando executo a procedure fica rodando rodando e trava o mysql... acho que vou pegar o resultado do banco e tentar organizar o que preciso com arrays no php... se eu converter o resultado em uma array, depois acredito que posso criar um foreach e com os valores montar de acordo a minha necessidade obrigado pela boa vontade em ajudar abraço
  9. Denis Courcy, Primeiramente muito obrigado pela sua colaboração e sua vontade em ajudar Tentei executar, disse que procedure não exisita... então fui la em sua procedure, copiei e tentei executar... ficou carregando... carregando... e não executou... não sei se peguei o código correto, poderia postá-lo aqui, por favor... acredito que a ordem correta criar primeiro a procedure e depois executar esse código que você me mandou acima... obrigado!
  10. vou testar e posto aqui o resultado... so uma observacao, as faltas devem ser contadas e agrupada por cod_disc_prof_turma.. por exemplo, o mesmo professores leciona diferentes materias para uma turma... então, se eu contar as faltas por disciplina, ou por professor, ficará errado. então tem que contar a falta para aquele relacionamento de disc_prof_turma obrigado, vou testar desse jeito ai, depois posto o resultado aqui
  11. andei pesquisando, em outras linguagens tem o transform e pivot... mas não consegui ainda usar no mysql, continuo tentando
  12. dei uma olhada aqui no fórum, realmente tem alguns posts sobre pivot table, a maioria apontando para um post onde você (Denis Cousy) respondeu com uma profedure... até entedi um pouco o que ele faz, mas não consegui adequar ao meu caso. vi que tinha alguém com um problema parecido, so que o dele era fornecedores... ele disse que resolveu com sua dica. Infelizmente eu não consegui... com o codigo abaixo, consegui retornar aproximadamente o que preciso... a questão é que repete o nome do aluno várias vezes (a quatidade de disciplina em que ele tem falta)... se precisar posso enviar o codigo sql para criar a tabela ai com alguns valores SELECT COUNT( b.cod_falta ) AS tot_faltas, a.cod_aluno as cod_alu, a.aluno, b.cod_aluno, b.cod_aula, c.cod_disc_prof_turma, c.cod_aula, ttt. * FROM tb_alunos a LEFT JOIN tb_faltas b ON a.cod_aluno = b.cod_aluno LEFT JOIN tb_aulas c ON b.cod_aula = c.cod_aula LEFT JOIN ( SELECT t.cod_aluno, COUNT( t.cod_falta ) FROM tb_faltas t GROUP BY cod_aluno ) AS ttt ON a.cod_aluno = ttt.cod_aluno WHERE a.cod_turma =2 GROUP BY a.cod_aluno, c.cod_disc_prof_turma ORDER BY a.aluno LIMIT 0 , 100
  13. Preciso que o php retorne na tela algo parecido com a imagem abaixo... acontece que tem turma que as disciplinas são diferentes... e o banco tem que ver isso no relacionamento de prof_disc_turma
  14. Ola pessoal, estou tentando fazer uma consulta em um banco mysql e estou tendo uma dificultado, juntar vários counts, e o seguinte, tenho um banco de faltas de alunos. o aluno recebe a falta por aula, esta aula esta relacionada a uma disciplina, um professor e turma. preciso retornar o nome do aluno e a quantidade de falta que ele tem em cada uma das disciplinas (cod_disc_prof_turma) estou enviando uma imagem, mostrando mais ou menos como são minhas tabelas. abaixo da linha vermelha, é como eu gostaria que a consulta ao banco retornasse... com esse código eu consegui o subtotal de cada disc_prof_turma, mas, o nome do aluno aparece várias vezes e o total em uma coluna, preciso que apareca apenas uma vez o nome do aluno e varias colunas com o total de falta de cada disc_prof_turma a maior confusão pode estar na tabela disc_prof_turma, que é uma relação de professores, com turmas e disciplinas Veja bem, um professor pode dar aulas de duas ou mais disciplinas, para várias turmas ou para uma mesma turma (por exemplo: professor JOÃO dá aula de ALGORITMOS, BANCO DE DADOS e também de SISTEMAS OPERACIONAIS... ele trabalha com essas disciplinas para alunos das turmas 1, 2, 3, 4, 5... portando, o mesmo professor, tem várias disciplinas e várias turmas) Dessa maneira, quando o aluno recebe uma falta, essa falta e cadastrada na tabela faltas, que tem a seguinte estrutura. Lembrando que fiz isso, pois cada falta vem devidamente acompanhada da aula, assim, sei exatamente em que dia o aluno faltou e em que aula ele faltou cod_falta / cod_aluno / cod_aula 1 3 2 o aluno recebeu uma falta em uma aula (aula 2) essa aula de código 2 está relacionada em outra tabela, a tabela aulas... cod_aula / data_aula / cod_disc_prof_turma 2 15/2/2012 3 o cod_disc_prof_turma indica qual o professor, a disciplina e a turma daquela aula... que por sua vez estãoo relacionados da seguinte maneira cod_disc_prof_turma / cod_prof / cod_disc / cod_turma 3 1 3 5 a falta então esta computada para o aluno 3. podemos então dizer que o aluno 3, da turma 5, tem 1 falta com o professor 1, na disciplina 3, que ele recebeu na aula 2, que aconteceu no dia 15/2/2012 quanto ao relacionamento, eles so existem na hora da consulta, não sei fazer no phpmyadmin o que eu fazia por exemplo no access... la eu relacionava as tabelas e uma ficava ligada a outra por esse relacionamento. aqui, o relacionamento existe apenas 'na minha cabeça' e junto essas tabelas no select. veja um que conseguia agora de manha, so acho que ficará muito extenso, pois se uma turma tiver por exemplo 10 disciplinas, terei que repetir o trecho do código 10 vezes... desde já agradeço pela sua ajuda SELECT a.cod_aluno, a.aluno, ttt. * , zzzz1.tt_disc_1, zzzz2.tt_disc_2,zzzz1.cod_aluno FROM tb_alunos a LEFT JOIN ( SELECT t.cod_aluno, COUNT( t.cod_falta ) FROM tb_faltas t GROUP BY cod_aluno ) AS ttt ON a.cod_aluno = ttt.cod_aluno LEFT JOIN ( SELECT COUNT( zzz1.cod_falta ) AS tt_disc_1, zzz1.cod_aula, zzz1.cod_aluno, c.cod_disc_prof_turma FROM tb_faltas zzz1 INNER JOIN tb_aulas c ON zzz1.cod_aula = c.cod_aula where c.cod_disc_prof_turma=11 GROUP BY zzz1.cod_aluno, c.cod_disc_prof_turma ) AS zzzz1 ON a.cod_aluno = zzzz1.cod_aluno LEFT JOIN ( SELECT COUNT( zzz2.cod_falta ) AS tt_disc_2, zzz2.cod_aula, zzz2.cod_aluno, c.cod_disc_prof_turma FROM tb_faltas zzz2 INNER JOIN tb_aulas c ON zzz2.cod_aula = c.cod_aula where c.cod_disc_prof_turma=3 GROUP BY zzz2.cod_aluno, c.cod_disc_prof_turma ) AS zzzz2 ON a.cod_aluno = zzzz2.cod_aluno WHERE a.cod_turma =2 GROUP BY a.cod_aluno ORDER BY a.aluno LIMIT 0 , 100
×
×
  • Criar Novo...