Ir para conteúdo
Fórum Script Brasil

dougdomi@gmail.com

Membros
  • Total de itens

    14
  • Registro em

  • Última visita

Sobre dougdomi@gmail.com

dougdomi@gmail.com's Achievements

0

Reputação

  1. usa o mysqli_multi_query note que existe o "I" ... é um mais "moderninho" com muito mais recursos e segurança para trabalhar com o MySQL no php leia mais sobre o recurso no link http://www.php.net/manual/pt_BR/mysqli.multi-query.php você vai ter que estruturar seu banco todo em mysqli...no link ai mostra também.. ahh Meu Deus....fui eu que postei????????? KKKKKKKKKKKKKKKKKKKKK Putz eu sabia a solução mais não sabia O.o \o/ vo fecha
  2. Pessoal, tenho a tabela: inventario.id inventario.cadastro_id inventario.quantia < quantia do item que ele possui inventario.item < ele obtem um valor X apontando para a tabela item.id e a tabela: cadastro.id cadastro.nome cadastro.slot_1 <- ele obtem um valor X apontando para a tabela inventario.id cadastro.slot_2 <- ele obtem um valor X apontando para a tabela inventario.id cadastro.slot_3 <- ele obtem um valor X apontando para a tabela inventario.id cadastro.slot_4 <- ele obtem um valor X apontando para a tabela inventario.id cadastro.slot_5 <- ele obtem um valor X apontando para a tabela inventario.id cadastro.slot_6 <- ele obtem um valor X apontando para a tabela inventario.id cadastro.slot_7 <- ele obtem um valor X apontando para a tabela inventario.id cadastro.slot_8 <- ele obtem um valor X apontando para a tabela inventario.id então eu tenho uma função que precisa equipar um item, porem para equipa-lo ele verifica a quantia que eu tenho deste item no inventario pois eu posso já ter equipado o mesmo item em algum outro slot...sendo que a quantia não diminui no inventario quando eu equipo um item apenas verifico se é possivel adicionar o mesmo item em outro slot mais para isso preciso escanear todos os campos acima de slots_1, 2, 3, 4[...] para ver se o item já foi equipado, então conforme o item for tambem encontrado nesses slots vai incrementado alguma variavel na consulta e no final verifica se o valor dessa variavel é maior do que a que tem no field quantia. Entenderam? xD Pode parecer complicado, se alguém não entendeu posta ai eu tento dar outra forma de explicar..vlw.
  3. e tem como eu fazer o update e o delete numa query só?
  4. qual forma eu poderia fazer para resolver este meu problema?
  5. depois que ele atualizar o campo X na tabela inventario e esse valor fica = 0 então ele remove do banco o registro que tinha sido atualizado...entende?
  6. Boa Tarde; O trigger abaixo é importado sem problemas dentro do banco de dados... Meu objetivo seria que depois que fosse feita a alteração do campo "quantia" e depois esse campo fosse = 0 então removia ele do banco... To a atarde toda pra fazer isso funciona... já tentei das duas formas abaixo: 1° DELIMITER | CREATE TRIGGER checkinv AFTER UPDATE ON inventario FOR EACH ROW BEGIN DELETE FROM inventario WHERE quantia < 1; END; | DELIMITER ; 2° DELIMITER | CREATE TRIGGER checkinv AFTER UPDATE ON inventario FOR EACH ROW BEGIN IF NEW.quantia < 1 THEN DELETE FROM inventario WHERE id = NEW.id; END IF; END; | DELIMITER ;
  7. sim Vithor começei a aprofundar mais na programação e verificar passo a passo os procedimentos e estou otimizando meus codigos php, alguns procedimento estao sendo feitos para evitar o tipos de problemas que relatei. Entre eles estou utilizando os CASES para verificações e a entrada de dados...Sei que o servidor web trabalha com varias entradas em simultaneo (threads) porem quando varias requisições são feitas no banco elas são enfileiradas pois mysql trabalha em single (isso impede conflitos no banco), então estou revendo as formas de trabalhar no PHP evitando em trabalhar com muitas queries em sequencia sendo obviamente que queires apenas de consultas não haveriam problemas... Um exemplo das mudanças que fiz //Exemplo de como eu fazia: function set_valor($valor_atual,$valor_diminuir) { mysql_query("Update tabela set valor = ".$valor_atual." - ".$valor_diminuir." where id=X"); } //Exemplo de como eu faço agora: function set_valor($valor_diminuir) { mysql_query("Update tabela set valor = valor - ".$valor_diminuir." where id=X"); } Então eu apenas faço o campo no banco recebe o valor dele menos o valor que esta sendo requisitado, pois vai que seguidamente existam duas pessoas na mesma requisição e o valor atual estejam diferentes...eu sei que a probabilidade disto acontecer é pouca porem ela existe...
  8. Olá, Bom Dia. Estou com duvida para usar UPDATE, SELECT e INSERT na mesma mysql_query pessoal. alguém pode me auxiliar.. algo mais ou menos assim Select * from tableX AND UPDATE tableY set campoA = Y AND INSERT INTO tabelaZ(campo1,campo2) VALUES(1,2); Algo mais ou menos desse tipo...alguém pode me dizer? Obrigado.
  9. Olá, Bom Dia. Estou com duvida para usar UPDATE, SELECT e INSERT na mesma mysql_query pessoal. alguém pode me auxiliar.. algo mais ou menos assim Select * from tableX AND UPDATE tableY set campoA = Y AND INSERT INTO tabelaZ(campo1,campo2) VALUES(1,2); Algo mais ou menos desse tipo...alguém pode me dizer? Obrigado. aff.acho que postei errdo de novo...por favor mover e me desculpem..
  10. O que sei é que o banco de dados vai colocar em fila todas as requisições e executar uma de cada vez...minha duvida é como vai funcionar com o PHP, já o pode ser puchadas informações no banco de dados em que alguns microsegundos atras já foram alteradas e então vai ser trabalhado com um valor desatualizado.. Acho que você não intendeu o que eu quis dizer, ou eu não consegui explicar direito
  11. já otimizei os codigos..dei uma boa analisada.. meu problema agora é outro e já fiz a postagem ta bem la no começinhu do forum (por enquanto)
  12. Bem pessoal, não sei nem como explicar esta duvida, mais vou tentar xD Digamos que temos uma function que ela pega dados de um banco de dados para ser executada, e então duas pessoas vao executar ao mesmo tempo digamos o processo, e há uma alteração no banco de dados no mesmo registro por ambas as pessoas...como vai funcionar o processo? Antes de executar o processo é feito acesso ao banco para fazer a alteração. Vejam o exemplo abaixo: $var1 = PEGA O VALOR X DO BANCO $var2 = UM VALOR X QUE VAI SER ADICIONADO function soma($var1,$var2) { $soma = $var1 + $var2; $sql = mysql_query("Update valor=".$soma." where id=X"); } Então digamos que varios usuarios podem incrementar valores ai dentro...ou fazer varios tempos de calculos mais complexos mais sempre utilizando também o valor atual que consta no banco, agora vamos lá, se dois usuarios executarem a tarefas ao mesmo temo e pegarem o mesmo valor no banco na hora da consulta (e não na hora da inserção), na hora que for inserir não vai aver o incremento e sim vai sobrepor um valor encima do outro...entenderam..neste caso ali apenas dei um exemplo. Aguardo respostas..espero que eu tenha explicado bem...ou que pelo menos alguém tenha entendido :D
  13. beleza vo manda pm...ainda estamos precisando de um desenhista...hehee
  14. Podem analisar o código abaixo e verificar se da para otimizar algo?? É referente a um jogo que estou desenvolvendo... public function refresh_status() { /* Parametros de codigos de item Tipos de Itens - Tipo[1] = cabeça Tipo[2] = tronco Tipo[3] = pernas Tipo[4] = braços Tipo[5] = armas mao direita e esquerda Tipo[6] = Chips Tipo[7] = Material //Subitens de Itens Tipo [5] - skills[1] = lanças skills[2] = espadas skills[3] = shotguns skills[4] = rifles skills[5] = cannon skills[6] = metralhadoras skills[7] = pistolas */ //cria variavel para inserir status do personagem temporariamente $vstatus = array("forca" => 0, "mobilidade" => 0, "resistencia" => 0, "precisao" => 0, "maxataque" => 0, "maxdefesa" => 0); //comeca capturando os valores de status do proprio personagem $vstatus["forca"] = $this->forca; $vstatus["mobilidade"] = $this->mobilidade; $vstatus["resistencia"] = $this->resistencia; $vstatus["precisao"] = $this->precisao; //captura os itens no banco de dados $seleitem = mysql_query("Select * from itens where id=".$this->slots[1]." or id=".$this->slots[2]." or id=".$this->slots[3]." or id=".$this->slots[4]." or id=".$this->slots[5]." or id=".$this->slots[6]." or id=".$this->slots[7]." or id=".$this->slots[8]." or id=".$this->slots[9]) or die ("Impossivel consultar no banco ERRO: <b>".mysql_error()."</b>"); //captura os valores de status ganhos com os equipamentos while ($qritem = mysql_fetch_array($seleitem)) { $vstatus["forca"] = $vstatus["forca"] + $qritem["forca"]; $vstatus["mobilidade"] = $vstatus["mobilidade"] + $qritem["mobilidade"]; $vstatus["resistencia"] = $vstatus["resistencia"] + $qritem["resistencia"]; $vstatus["precisao"] = $vstatus["precisao"] + $qritem["precisao"]; $vstatus["maxataque"] = $vstatus["maxataque"] + $qritem["ataque"]; $vstatus["maxdefesa"] = $vstatus["maxdefesa"] + $qritem["defesa"]; //se for um item do tipo arma [5] verifica o subtipo para ver os adicionais de skill dano if ($qritem["tipo"] == 5) { if (($qritem["subtipo"] >= 1) and ($qritem["subtipo"] <= 7)) { //bonificação de dano pela skill do mecanismo $vstatus["maxataque"] = $vstatus["maxataque"] + $this->skills[$qritem["subtipo"]]; //bonificação de dano se for arma corporal = lanças | espadas if (($qritem["subtipo"] == 1) or ($qritem["subtipo"] == 2)) { $vstatus["maxataque"] = $vstatus["maxataque"] + ($this->forca * 2); } //bonificação de dano se for arma de ataque a distancia = shotguns | rifles | cannon | metralhadoras | pistolas if (($qritem["subtipo"] == 3) or ($qritem["subtipo"] == 4) or ($qritem["subtipo"] == 5) or ($qritem["subtipo"] == 6) or ($qritem["subtipo"] == 7)) { $vstatus["maxataque"] = $vstatus["maxataque"] + ($this->precisao); } } } } //enviando status final do usuario para a variavel get_status $this->infostatus = $vstatus; }
×
×
  • Criar Novo...