Jump to content

DiegoAngra07

Members
  • Content count

    408
  • Joined

  • Last visited

  • Days Won

    3

DiegoAngra07 last won the day on October 14 2012

DiegoAngra07 had the most liked content!

Community Reputation

21 Levemente Bom

5 Followers

About DiegoAngra07

  • Birthday 01/04/1994

Informações Pessoais

  • Sexo
    Masculino
  • Localização
    Lages - SC
  • Interesses
    Aprender mais e mais ajudando a quem precisa.

Contato

  • Skype
    paulod.silva
  1. Boa tarde amigos do fórum, Gostaria de indicações para um bom serviço de e-mail gratuito (se possível) para distros Linux (qualquer uma). Hoje tenho 59 e-mails da empresa hospedados em um Zimbra de empresa terceirizada, e planejamos cortar essa hospedagem. Andei estudando a possibilidade de outras prestadoras (como a Locaweb) mas não me agradou muito. Então pensei em estudar e tentar um servidor doméstico para a empresa, o volume de mensagens por dia é alto mas temos estrutura de rede e link de internet para dar conta. Dei uma olhada não muito aprofundada na net, e encontrei diversas opções. Queria indicações pessoais de vocês do que é bom, ruim, em cada serviço que conhecem. Eu basicamente precisaria de algo parecido com o Zimbra: não seja tão simples quanto os domésticos para poucos e-mails, que tenha uma interface web para os usuários, e permita algumas personalizações. Ou um tutorial do próprio Zimbra, sinceramente não sei se ele é gratuito ou não, e se é muito complicado de instalar e gerenciar. Grato desde já.
  2. DiegoAngra07

    ASP.NET MVC - Como fazer um sistema com janelas?

    Boa tarde, primeiramente obrigado pelas respostas caros colegas. Nenhuma das duas soluções propostas atinge totalmente meu objetivo. - Abrindo as páginas em nova aba é ok, mas para certos usuários eles acabam se perdendo entre as telas. - Abrir uma modal não é o ideal pois o usuário fica "preso" naquela janela, por exemplo eu não consigo abrir 2 ou 3 janelas simultaneamente e permitir que ele arraste e alterne entre elas. Um exemplo funcional: O usuário está digitando um documento, e precisa alterar no cadastro do cliente o campo Endereço ou comparar as informações de um cadastro com o de outro cliente. - Com modal, ele não consegue colocar as duas janelas lado a lado dentro do mesmo ambiente para comparar. - Com nova aba ele consegue e atende. Ele pode abrir em uma nova aba o cadastro de clientes e consultar / alterar o que precisa. Mas como disse ainda não é a usabilidade ideal para usuários mais comuns. Tem alguma outra sugestão ou exemplo? Depois de tanto pesquisar estou começando a achar que é impossível fazer isso com APS.NET MVC. Mais uma vez agradeço pela atenção e ajuda.
  3. Boa tarde pessoal, Estou desenvolvendo uma solução em ASP.NET MVC, aprendendo ainda e fazendo testes antes de partir pro desenvolvimento real. Gostaria de saber se tem como simular o comportamento de um sistema desktop, você logar em um ambiente com um menu, e cada opção de menu abre uma janela dentro do mesmo ambiente, sem mudar de página / link / etc. Que nem abrir várias janelas do explorer no seu Windows. Dá pra fazer isso com MVC? Se sim, quais tutoriais seguir? É o ideal fazer com ele? Senão, com que tecnologia simular tal comportamento em um sistema web? Muito obrigado desde já.
  4. DiegoAngra07

    Web System com C# / .NET - Iniciante

    Boa tarde pessoal, tudo bem? Já trabalhei com C# .NET antes mas na parte de desenvolvimento desktop (Windows Forms, mais especificamente em um add-on para um produto da SAP). Agora em outra empresa, vamos iniciar um sistema web que será extenso e cheio de regras de negócio conforme o tempo passar. Meu chefe trabalhou sempre com PHP bem estruturado e não se dá bem com "novidades" (meio dinossauro, não sabe POO nem MVC). Eu consegui o voto de confiança para iniciar este projeto em .NET com Web MVC mas não tenho experiência para dar o pontapé inicial, que seria: - Criar o projeto do zero no Visual Studio 2015. - Configurações iniciais que precisam ser feitas na aplicação. - Conexão com banco de dados SQL Server usando as ferramentas do .NET (ADO ou Entity Framework). - Componentes para montar as primeiras telas, bem drag and drop mesmo para ter uma noção inicial. - Basicamente fazer rodar uma tela de login e um Home. Eu já criei um projeto MVC no VS2015 e dei uma olhada nos códigos, quanto a sintaxes não tenho problemas, só tenho dúvidas nos tópicos acima, como funciona a Solution internamente, para que servem certos arquivos e pastas. Portanto venho aqui pedir indicação de materiais, tutoriais, artigos, etc. Acho bastante na internet mas todos não sanam bem as minhas principais dúvidas. Quero material que me explique como funciona o desenvolvimento, a estrutura e como dar os primeiros passos sem muita complexidade, extensões e ferramentas facilitadoras para a IDE, etc. Ah o sistema será hospedado em IIS num servidor próprio, então peço que se possível evitar tutoriais com o Azure pois a maioria que eu achei até agora envolvem ele, e não vamos utilizá-lo ai acaba confundindo. Desde já agradeço a qualquer ajuda que possam me dar e pela sua atenção, ficarei no aguardo.
  5. Eu tinha pensado em algo assim. O problema da minha lógica era conseguir encaixar times sem duplicações mesmo, e a preguiça de refazer todos aqueles SQL em alguma linguagem :P
  6. DiegoAngra07

    [Resolvido] Consulta MySql

    Boa tarde amigo, Só tem Centro e Zona alguma coisa nessa tabela? Se for só isso um ORDER BY bairro ASC na consulta resolve. Mas se tiverem outros bairros, com letra A ou B por exemplo, já virão antes do Centro. Nesse segundo caso tente: SELECT bairro FROM tabela WHERE bairro = 'Centro' UNION SELECT bairro FROM tabela WHERE bairro <> 'Centro' ORDER BY bairro ASC E veja se te atende. Espero que seja útil, abraço.
  7. Tranquilo amigo. Sinto não poder ter ajudado mais, mas realmente ficará melhor de você resolver com alguma linguagem de programação. Abraço e boa sorte.
  8. Mas ainda haveria uma falha na lógica pra montar as partidas e rodadas sem acontecer o erro que está acontecendo. Melhor ser feito usando alguma linguagem mesmo, implementando a lógica desse SQL.
  9. Bom se não precisa ter diferenciação entre mandante e visitante acho que se eu simplificar meu SQL ele te atende. Eu fiz umas mudanças aqui e por enquanto ele está assim: SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; DROP SCHEMA IF EXISTS `campeonato` ; CREATE SCHEMA IF NOT EXISTS `campeonato` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ; USE `campeonato` ; -- ----------------------------------------------------- -- Table `time` -- ----------------------------------------------------- DROP TABLE IF EXISTS `time` ; CREATE TABLE IF NOT EXISTS `time` ( `idTime` INT NOT NULL AUTO_INCREMENT , `nome` VARCHAR(50) NOT NULL , PRIMARY KEY (`idTime`) ) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `rodada` -- ----------------------------------------------------- DROP TABLE IF EXISTS `rodada` ; CREATE TABLE IF NOT EXISTS `rodada` ( `idRodada` int(11) NOT NULL AUTO_INCREMENT, `numRodada` varchar(45) NOT NULL, `turno` char(1) NOT NULL, PRIMARY KEY (`idRodada`) ) ENGINE=InnoDB; -- ----------------------------------------------------- -- Table `partida` -- ----------------------------------------------------- DROP TABLE IF EXISTS `partida` ; CREATE TABLE IF NOT EXISTS `partida` ( `idPartida` INT NOT NULL AUTO_INCREMENT , `idRodada` INT NOT NULL , `idMandante` INT NOT NULL , `idVisitante` INT NOT NULL , PRIMARY KEY (`idPartida`) , INDEX `rodadaFkIdx` (`idRodada` ASC) , INDEX `mandanteFkIdx` (`idMandante` ASC) , INDEX `visitanteFkIdx` (`idVisitante` ASC) , UNIQUE INDEX `timesUniqueIdx` (`idMandante` ASC, `idVisitante` ASC) , CONSTRAINT `rodadaFk` FOREIGN KEY (`idRodada` ) REFERENCES `rodada` (`idRodada` ) ON DELETE RESTRICT ON UPDATE RESTRICT, CONSTRAINT `mandanteFk` FOREIGN KEY (`idMandante` ) REFERENCES `time` (`idTime` ) ON DELETE RESTRICT ON UPDATE RESTRICT, CONSTRAINT `visitanteFk` FOREIGN KEY (`idVisitante` ) REFERENCES `time` (`idTime` ) ON DELETE RESTRICT ON UPDATE RESTRICT) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `partidaAux` -- ----------------------------------------------------- DROP TABLE IF EXISTS `partidaAux` ; CREATE TABLE IF NOT EXISTS `partidaAux` ( `idPartida` INT NOT NULL AUTO_INCREMENT , `idMandante` INT NULL , `idVisitante` INT NULL , PRIMARY KEY (`idPartida`) ) ENGINE = InnoDB; SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; USE `campeonato`; INSERT INTO time (nome) VALUES ('Palmeiras'); INSERT INTO time (nome) VALUES ('São Paulo'); INSERT INTO time (nome) VALUES ('Santos'); INSERT INTO time (nome) VALUES ('Flamengo'); INSERT INTO time (nome) VALUES ('Fluminense'); INSERT INTO time (nome) VALUES ('Vasco'); INSERT INTO time (nome) VALUES ('Grêmio'); INSERT INTO time (nome) VALUES ('Internacional'); INSERT INTO time (nome) VALUES ('Criciúma'); INSERT INTO time (nome) VALUES ('Avaí'); USE `campeonato`; DROP PROCEDURE IF EXISTS `geraPartidas`; delimiter $$ CREATE PROCEDURE `geraPartidas`() BEGIN DECLARE numTimes, iCont, iContVisitante int; SET numTimes = (SELECT COUNT(t.idTime) FROM time t); SET iCont = 1; WHILE (iCont <= numTimes) DO SET iContVisitante = 1; WHILE (iContVisitante <= numTimes) DO IF (iCont <> iContVisitante) THEN INSERT INTO partidaAux (idMandante, idVisitante) VALUES (iCont, iContVisitante) ; END IF; SET iContVisitante = iContVisitante + 1; END WHILE; SET iCont = iCont + 1; END WHILE; END$$ CALL geraPartidas() $$ DELIMITER ; USE `campeonato`; DROP PROCEDURE IF EXISTS `geraRodadas`; DELIMITER $$ CREATE PROCEDURE `geraRodadas`() BEGIN DECLARE numPartidas, numRodadas, partidasPorRodada, iCont, iContPartidas int; DECLARE iRodada, varIdPartida, varIdRodada, varIdMandante, varIdVisitante int; SET numPartidas = ((SELECT COUNT(p.idPartida) FROM partidaAux p) / 2); SET numRodadas = ((SELECT COUNT(t.idTime) FROM time t) - 1); SET partidasPorRodada = (numPartidas / numRodadas); SET iCont = 1; SET iRodada = 1; WHILE (iRodada <= numRodadas) DO SET iContPartidas = 1; INSERT INTO rodada (numRodada, turno) VALUES (iRodada, '1'); SET varIdRodada = (SELECT MAX(r.idRodada) FROM rodada r); WHILE (iContPartidas <= partidasPorRodada) DO SET varIdPartida = ( SELECT p.idPartida FROM partidaAux p WHERE NOT EXISTS ( SELECT 1 FROM partida a WHERE ( (a.idMandante = p.idMandante ) OR (a.idMandante = p.idVisitante) OR (a.idVisitante = p.idMandante ) OR (a.idVisitante = p.idVisitante) ) AND a.idRodada = varIdRodada ) AND NOT EXISTS ( SELECT 1 FROM partida a WHERE ( (a.idMandante = p.idVisitante) AND (a.idVisitante = p.idMandante ) ) ) ORDER BY RAND() LIMIT 1 ); SET varIdMandante = (SELECT p.idMandante FROM partidaAux p WHERE p.idPartida = varIdPartida); SET varIdVisitante = (SELECT p.idVisitante FROM partidaAux p WHERE p.idPartida = varIdPartida); IF ((varIdMandante IS NOT NULL) AND (varIdVisitante IS NOT NULL)) THEN INSERT INTO partida (idRodada, idMandante, idVisitante) VALUES (varIdRodada, varIdMandante, varIdVisitante); DELETE FROM partidaAux WHERE idPartida = varIdPartida; SET iContPartidas = iContPartidas + 1; END IF ; END WHILE; SET iRodada = iRodada + 1; END WHILE ; END$$ CALL geraRodadas() $$ DELIMITER ; USE `campeonato`; DROP PROCEDURE IF EXISTS `geraSegundoTurno`; DELIMITER $$ CREATE PROCEDURE `geraSegundoTurno`() BEGIN DECLARE f int DEFAULT 1; DECLARE varIdMandante, varIdVisitante, varRodada, varIdRodada, varIdRodadaOld, varIdRodadaNew int; DECLARE curPartidasIdRodada CURSOR FOR SELECT idRodada FROM partida ORDER BY idPartida ASC; DECLARE curPartidasIdMandante CURSOR FOR SELECT idMandante FROM partida ORDER BY idPartida ASC; DECLARE curPartidasIdVisitante CURSOR FOR SELECT idVisitante FROM partida ORDER BY idPartida ASC; DECLARE CONTINUE HANDLER FOR NOT FOUND SET f = 0; SET varRodada = (SELECT MAX(r.numRodada) FROM rodada r); SET varIdRodadaOld = 0; SET varIdRodadaNew = 0; OPEN curPartidasIdRodada; OPEN curPartidasIdMandante; OPEN curPartidasIdVisitante; REPEAT FETCH curPartidasIdRodada INTO varIdRodadaNew; FETCH curPartidasIdMandante INTO varIdMandante; FETCH curPartidasIdVisitante INTO varIdVisitante; IF (varIdRodadaNew <> varIdRodadaOld) THEN BEGIN SET varRodada = varRodada + 1; INSERT INTO rodada (numRodada, turno) VALUES (varRodada, '2'); SET varIdRodada = (SELECT MAX(r.idRodada) FROM rodada r); SET varIdRodadaOld = varIdRodadaNew; END ; END IF ; IF ((varIdMandante IS NOT NULL) AND (varIdVisitante IS NOT NULL)) THEN INSERT INTO partida (idRodada, idMandante, idVisitante) VALUES (varIdRodada, varIdVisitante, varIdMandante); END IF; UNTIL (f = 0) END REPEAT ; CLOSE curPartidasIdRodada; CLOSE curPartidasIdMandante; CLOSE curPartidasIdVisitante; -- DROP TABLE partidaAux; -- Comentado temporariamente END $$ CALL geraSegundoTurno(); O que está acontecendo é que trava em determinado momento, justamente por aquela questão que eu citei antes, de sobrarem apenas times que já jogaram e então o SQL entra em looping. Deixo aqui se alguém conseguir resolver, depois vou voltar a mexer nisso. Abraço.
  10. Pois é, eu não tinha feito nada referente a mando de campo seguido ou algo assim ainda, como a CBF. Só as rotinas pra gerar as partidas por enquanto. Mas é uma ideia interessante. Achei o problema da minha PROCEDURE: Tá fazendo times jogarem 2 vezes no mesmo turno ainda. Exemplo, time A mandante contra time F na rodada 1, e na rodada 2 o time F mandante contra o A, sendo que isso só devia acontecer no segundo turno. Vou ver aqui acho que sei a resolução.
  11. Criação do banco e tabelas: SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; DROP SCHEMA IF EXISTS `campeonato` ; CREATE SCHEMA IF NOT EXISTS `campeonato` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ; USE `campeonato` ; -- ----------------------------------------------------- -- Table `time` -- ----------------------------------------------------- DROP TABLE IF EXISTS `time` ; CREATE TABLE IF NOT EXISTS `time` ( `idTime` INT NOT NULL AUTO_INCREMENT , `nome` VARCHAR(50) NOT NULL , PRIMARY KEY (`idTime`) ) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `rodada` -- ----------------------------------------------------- DROP TABLE IF EXISTS `rodada` ; CREATE TABLE IF NOT EXISTS `rodada` ( `idRodada` int(11) NOT NULL AUTO_INCREMENT, `numRodada` varchar(45) NOT NULL, `turno` char(1) NOT NULL, PRIMARY KEY (`idRodada`) ) ENGINE=InnoDB; -- ----------------------------------------------------- -- Table `partida` -- ----------------------------------------------------- DROP TABLE IF EXISTS `partida` ; CREATE TABLE IF NOT EXISTS `partida` ( `idPartida` INT NOT NULL AUTO_INCREMENT , `idRodada` INT NOT NULL , `idMandante` INT NOT NULL , `idVisitante` INT NOT NULL , PRIMARY KEY (`idPartida`) , INDEX `rodadaFkIdx` (`idRodada` ASC) , INDEX `mandanteFkIdx` (`idMandante` ASC) , INDEX `visitanteFkIdx` (`idVisitante` ASC) , UNIQUE INDEX `timesUniqueIdx` (`idMandante` ASC, `idVisitante` ASC) , CONSTRAINT `rodadaFk` FOREIGN KEY (`idRodada` ) REFERENCES `rodada` (`idRodada` ) ON DELETE RESTRICT ON UPDATE RESTRICT, CONSTRAINT `mandanteFk` FOREIGN KEY (`idMandante` ) REFERENCES `time` (`idTime` ) ON DELETE RESTRICT ON UPDATE RESTRICT, CONSTRAINT `visitanteFk` FOREIGN KEY (`idVisitante` ) REFERENCES `time` (`idTime` ) ON DELETE RESTRICT ON UPDATE RESTRICT) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `partidaAux` -- ----------------------------------------------------- DROP TABLE IF EXISTS `partidaAux` ; CREATE TABLE IF NOT EXISTS `partidaAux` ( `idPartida` INT NOT NULL AUTO_INCREMENT , `idMandante` INT NULL , `idVisitante` INT NULL , PRIMARY KEY (`idPartida`) ) ENGINE = InnoDB; SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; Inserção dos times para simulação: USE `campeonato`; INSERT INTO time (nome) VALUES ('Palmeiras'); INSERT INTO time (nome) VALUES ('São Paulo'); INSERT INTO time (nome) VALUES ('Santos'); INSERT INTO time (nome) VALUES ('Flamengo'); INSERT INTO time (nome) VALUES ('Fluminense'); INSERT INTO time (nome) VALUES ('Vasco'); INSERT INTO time (nome) VALUES ('Grêmio'); INSERT INTO time (nome) VALUES ('Internacional'); INSERT INTO time (nome) VALUES ('Criciúma'); INSERT INTO time (nome) VALUES ('Avaí'); Aqui eu criei uma PROCEDURE pra gerar as partidas com os times existentes: USE `campeonato`; DROP PROCEDURE IF EXISTS `geraPartidas`; delimiter $$ CREATE PROCEDURE `geraPartidas`() BEGIN DECLARE numTimes, iCont, iContVisitante int; SET numTimes = (SELECT COUNT(t.idTime) FROM time t); SET iCont = 1; WHILE (iCont <= numTimes) DO SET iContVisitante = 1; WHILE (iContVisitante <= numTimes) DO IF (iCont <> iContVisitante) THEN INSERT INTO partidaAux (idMandante, idVisitante) VALUES (iCont, iContVisitante) ; END IF; SET iContVisitante = iContVisitante + 1; END WHILE; SET iCont = iCont + 1; END WHILE; END $$ CALL geraPartidas() $$ Essa PROCEDURE vai alimentar a tabela partidaAux com todas as partidas possíveis no campeonato, se houverem 4 times apenas no campeonato o resultado seria este: Time 1 x Time 2 Time 1 x Time 3 Time 1 x Time 4 Time 2 x Time 1 Time 2 x Time 3 Time 2 x Time 4 Time 3 x Time 1 Time 3 x Time 2 Time 3 x Time 4 Time 4 x Time 1 Time 4 x Time 2 Time 4 x Time 3 Todos os times jogam 2 vezes com o outro, uma vez como mandante e outra como visitante. Agora que a coisa complica... Olha, eu tava preparando as coisas pra postar aqui e fui mexer de novo na PROCEDURE abaixo, e agora parece que to tendo uma luz. Vou postar ela aqui pra vocês já também, e vou continuar mexendo aqui pra ver se acho o problema porque me parece que tem um problema. Segue. Essa PROCEDURE pega as partidas que geramos na tabela partidaAux e joga aleatoriamente para a tabela partida, relacionando com as rodadas. Ela só faz o 1º turno por enquanto, para o segundo turno eu ia acrescentar um pedaço de código abaixo que pega as partidas do primeiro turno e inverte os times entendem? USE `campeonato`; DROP PROCEDURE IF EXISTS `geraRodadas`; DELIMITER $$ CREATE PROCEDURE `geraRodadas`() BEGIN DECLARE numPartidas, numRodadas, partidasPorRodada, iCont, iContPartidas int; DECLARE iRodada, varIdPartida, varIdRodada, varIdMandante, varIdVisitante int; SET numPartidas = ((SELECT COUNT(p.idPartida) FROM partidaAux p) / 2); SET numRodadas = ((SELECT COUNT(t.idTime) FROM time t) - 1); SET partidasPorRodada = (numPartidas / numRodadas); SET iCont = 1; SET iRodada = 1; WHILE (iRodada <= numRodadas) DO SET iContPartidas = 1; INSERT INTO rodada (numRodada, turno) VALUES (iRodada, '1'); SET varIdRodada = (SELECT MAX(r.idRodada) FROM rodada r); WHILE (iContPartidas <= partidasPorRodada) DO SET varIdPartida = ( SELECT p.idPartida FROM partidaAux p WHERE NOT EXISTS ( SELECT 1 FROM partida a WHERE ( (a.idMandante = p.idMandante ) OR (a.idMandante = p.idVisitante) OR (a.idVisitante = p.idMandante ) OR (a.idVisitante = p.idVisitante) ) AND a.idRodada = varIdRodada ) ORDER BY RAND() LIMIT 1 ); SET varIdMandante = (SELECT p.idMandante FROM partidaAux p WHERE p.idPartida = varIdPartida); SET varIdVisitante = (SELECT p.idVisitante FROM partidaAux p WHERE p.idPartida = varIdPartida); IF ((varIdMandante IS NOT NULL) AND (varIdVisitante IS NOT NULL)) THEN INSERT INTO partida (idRodada, idMandante, idVisitante) VALUES (varIdRodada, varIdMandante, varIdVisitante); DELETE FROM partidaAux WHERE idPartida = varIdPartida; END IF ; SET iContPartidas = iContPartidas + 1; END WHILE; SET iRodada = iRodada + 1; END WHILE; END$$ CALL geraRodadas() $$ Eu acho que ela tem algum erro... Ou não rs Ela tinha até hoje, agora me bateu uma ideia e fiz umas modificações. Executa aí cara e vê se tá certa, que eu vo fazer a parte do 2º turno aqui e já posto. Abraço.
  12. Pois é... O SQL só conseguiu ir até uma parte aqui, mas rendeu bastante até. Eu pensei em refazer usando alguma linguagem mas não tive chances ainda.
  13. Bom dia amigo, Olha eu consegui aqui 80%. Tipo dividir as rodadas todas, mas na hora de montar as mesmas aleatoriamente, sem que times se repitam e tal o negócio complica, em algum momento dá erro no MySQL por duplicidade. O que acontece é o seguinte, imagine com 3 times: 1ª rodada A x B C x D E x F Quando o MySQL vai montar a segunda rodada (não é a segunda em específico, mas isso pode ocorrer com qualquer rodada e a chance de acontecer é maior se tiver mais times - eu simulei com 10), ele já sabe que o A já jogou contra B, C contra D e E contra F, então ele não vai montar estas partidas de novo. Mas digamos que, aleatoriamente, ele monta A x D e B x C, sendo assim só sobram E e F de novo. Eu tentei fazer uma condição pra prevenir isso, até consegui pra última partida da rodada ele não deixar sobrarem apenas times que já jogaram entre si, mas percebi que isso pode acontecer não só na última mas sim nas 2 ou 3 últimas partidas, ou até mais se forem muitos times... Eu tenho tudo que fiz aqui se tu quiser, é tudo em SQL tu pode tentar implementar em PHP. Da forma que eu fiz aqui, dá de gerar tudo e ignorar os erros, assim sobrariam digamos, umas 10 partidas que não foram montadas por erro. Aí essas 10 montava na mão... É ruim isso mas como o Motta disse, é uma coisa interessante de se fazer, justamente porque é bem complicada. Enfim, se quiser meus códigos SQL eu posto aqui e detalho todos. Abraço.
  14. Boa tarde amigo, É complicado fazer as coisas aleatórias, justo porque ocorrem erros aleatórios. Eu to tentando uma coisa aqui se conseguir eu te passo. Se já tiver conseguido posta aí. Abraço.
  15. DiegoAngra07

    select dentro do update

    Cara não to mais entendendo o que você quer fazer. Se na tua informação vem do form porque fazer essa subquery? Se tu quer somar o estoqueAtual com um valor não bastaria ser: UPDATE produto SET estoqueAtual = estoqueAtaul + valor ?
×

Important Information

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