Carcleo 4 Denunciar post Postado Setembro 10, 2012 Pessoal. O código abaixo: if(isset($estoque_a_deletar_base)) { $deleta = false; foreach ($estoque_a_deletar_base as $base_a_deletar) { $indice = 0; for ($i=1; $i<=count($estoque_a_deletar_form)/2; $i++) { print "Cor base: ".$base_a_deletar[1]." e Cor form: ".$estoque_a_deletar_form[$indice]."<br />Tamanho base: ".$base_a_deletar[2]." e Tamanho form: ".$estoque_a_deletar_form[$indice+1]."<br />"; if(($base_a_deletar[1]==$estoque_a_deletar_form[$indice]) and ($base_a_deletar[2] == $estoque_a_deletar_form[$indice+1])) { $deleta=true; break; } $indice = $indice+2; } print "Delete: ".$deleta."<br><br>"; //Todos os valores estao chegando como que o valor de delete=1 e não true if ($deleta==false) { $deleta_estoque_string = "delete from estoque where id_estoque=".$base_a_deletar[0]; print $deleta_estoque_string."<br>"; } } } Esta, neste momento, produzindo a seguinte saida: Cor base: 1 e Cor form: 1 | Tamanho base: 1 e Tamanho form: 1 Delete: 1 Cor base: 3 e Cor form: 1 | Tamanho base: 1 e Tamanho form: 1 Cor base: 3 e Cor form: 1 | Tamanho base: 1 e Tamanho form: 5 Delete: 1 Cor base: 1 e Cor form: 1 | Tamanho base: 5 e Tamanho form: 1 Cor base: 1 e Cor form: 1 | Tamanho base: 5 e Tamanho form: 5 Delete: 1 Cor base: 3 e Cor form: 1 | Tamanho base: 5 e Tamanho form: 1 Cor base: 3 e Cor form: 1 | Tamanho base: 5 e Tamanho form: 5 Delete: 1 Acontece, que a varivel delete é boolena,e não estou conseguindo receber seu valor direito. Ou ela vem como 1 ou vem vazia. Observem a saida: Na primeira linha, não houve duas linhas pois, na primeiro volta do for, constatou-se uma igualdade entre os valores e então, conforme o codigo, era para parar. contece, que mesmo assim, não consegui recuperar a variavel delete como true. Onde estará o erro? Compartilhar este post Link para o post Compartilhar em outros sites
Vadio 13 Denunciar post Postado Setembro 10, 2012 utilize "exit(1);" ao invés de "break;" Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Setembro 10, 2012 Não posso usar exit(1) pois isso pararia todo o codigo abaixo(sim, eu fiz o teste). Preciso que pare apenas uma volta do loop Sim. Agora deu certo: if(isset($estoque_a_deletar_base)) { foreach ($estoque_a_deletar_base as $base_a_deletar) { $indice = 0; $deleta = false; for ($i=1; $i<=count($estoque_a_deletar_form)/2; $i++) { //print "Cor base: ".$base_a_deletar[1]." e Cor form: ".$estoque_a_deletar_form[$indice]." | Tamanho base: ".$base_a_deletar[2]." e Tamanho form: ".$estoque_a_deletar_form[$indice+1]."<br />"; if(($base_a_deletar[1]==$estoque_a_deletar_form[$indice]) and ($base_a_deletar[2] == $estoque_a_deletar_form[$indice+1])) { $deleta=true; break; } $indice = $indice+2; } //print "Delete: ".$deleta."<br><br>"; //Todos os valores estao chegando como que o valor de delete=1 e não true if (!$deleta) { $deleta_estoque_string = "delete from estoque where id_estoque=".$base_a_deletar[0]; $deleta_estoque_query = $conexao->query($deleta_estoque_string); } } } Compartilhar este post Link para o post Compartilhar em outros sites