Ir para conteúdo
Fórum Script Brasil
  • 0

resultado de comparaçoes


Carlos Rocha

Pergunta

Pessoal, preciso saber como faço para, ao final de um loop foreach, em que a cada volta do loop, se faça uma busca (omparação), caso nenhuma das buscas tenha retorno, aí farei um delete dasquele registro.

Bom, o loop é esse:

foreach($estoques_a_deletar as $deleta)
{ 
  print "Cor: ".$deleta[1]." - ".$cores_produtos." Tamanho ".$deleta[2]." - ".$tamanhos_produtos."<br>";
  if(!(($deleta[1]==$cores_produtos) and ($deleta[2]==$tamanhos_produtos)))
  {
     $deleta_estoque_string="delete from estoque where id_estoque=".$deleta[0];
     print $deleta_estoque_string."<br>";
     //$deleta_estoque_query= $conexao->query($deleta_estoque_string);
  }
}
Esse loop esta dentro de um outro loop foreach que entrega, a cada volta, um valor para $cores_produtos e $tamanhos_produtos, que devem ser comparados com $deleta[1] e $deleta[2] consecutivamente. E, se em nehum laço, houver a combinação, aí faço o delete do registro. Como fazer isso? Segue o codigo todo:
$pesquisa_cor_tamanho_string = "select id_estoque, id_cor, id_tamanho from estoque where id_produto=".$_POST["id_alt_produtos"];
           $pesquisa_cor_tamanho_query  = $conexao->query($pesquisa_cor_tamanho_string);
           
           if ($pesquisa_cor_tamanho_query->num_rows!=0)
           {               
             $estoques_a_deletar=array();

              while($row = $pesquisa_cor_tamanho_query->fetch_row()) 
             {$estoques_a_deletar[] = array_values($row); }        
           }

           $estoque_a_deletar = array();
          
           foreach ($_POST["cores_alt_produtos"] as $cores_produtos)
           {
             foreach ($_POST["tamanhos_alt_produtos"] as $tamanhos_produtos)
             {

                 array_push($estoque_a_deletar,$cores_produtos);
                 array_push($estoque_a_deletar,$tamanhos_produtos);

                 $pesquisa_cores_tamanhos_string =
                 "select id_cor, id_tamanho, id_estoque from estoque where 
                 id_cor=".$cores_produtos." and
                 id_tamanho=".$tamanhos_produtos." and
                 id_produto=".$_POST["id_alt_produtos"];
                 
                 $pesquisa_cores_tamanhos_query = $conexao->query($pesquisa_cores_tamanhos_string);

                 if ($pesquisa_cores_tamanhos_query->num_rows==0)
                 {
                    $insere_cor_tamanho_string=
                    "insert into estoque (id_produto, id_cor, id_tamanho)
                     values (".$_POST["id_alt_produtos"].",".$cores_produtos.",".$tamanhos_produtos.")"; 
                 }        
                 print $pesquisa_cores_tamanhos_string."<br>";
                 //$insere_cor_tamanho_query = $conexao->query($insere_cor_tamanho_string);     
                 if(isset($estoques_a_deletar))
                 {
                   foreach($estoques_a_deletar as $deleta)
                   { 
                      print "Cor: ".$deleta[1]." - ".$cores_produtos." Tamanho ".$deleta[2]." - ".$tamanhos_produtos."<br>";
                      if(!(($deleta[1]==$cores_produtos) and ($deleta[2]==$tamanhos_produtos)))
                      {
                         $deleta_estoque_string="delete from estoque where id_estoque=".$deleta[0];
                         print $deleta_estoque_string."<br>";
                         //$deleta_estoque_query= $conexao->query($deleta_estoque_string);
                      }
                   }
                 }

             }
           }

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Veja:

tenho para cada indice do array, sub indices 0,1 e 2. Então, não sei bem com fazer nesse caso.

Pensei em fazer um inidce para um novo array push tal como

a cada laço do indice 1, crio o indice 1 do array id_a_deletatr[0].

a cada laço do indice 2, crio o indice 1 do array id_a_deletatr[1].

Depois, faço um for nesse array e, o indices que tiverem true eu faço a deleção. Mas não funcionou.

O negocio é o seguinte:

Para cada produto eu tenho varias combinações cor/tamanho.

Na alteração desse produto, preciso filtrar 3 coisas:

A) Os indices que vieram do formulario e que não estão na base -> Esses, tenho que gravar => Consegui

A) Os indices que vieram do formulario e que estão na base -> Esses, NÃO tenho que gravar => Consegui

C) Os indices que que tem no base de dados mas que NÃO estão no formulario ->, Esses, preciso deletar. => NÃO consegui

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, vou tentar simplificar.

Tenho essa array:

Array1
(
    [0] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 1
        )

    [1] => Array
        (
            [0] => 2
            [1] => 3
            [2] => 1
        )

    [2] => Array
        (
            [0] => 3
            [1] => 1
            [2] => 5
        )

    [3] => Array
        (
            [0] => 4
            [1] => 3
            [2] => 5
        )

)
E essa:
Array2
(    
     [0] => 1    
     [1] => 1    
     [2] => 1    
     [3] => 5
)

Preciso saber quantas combinações há de cada indice primario do primeiro array em seus subindices 1 e 2, com cada sequencia 0,1; 2,3 do segundo array.

Tipo assim:

comparar o

array1[1] com array2[1] e array1[2] com array2[2]

Se não houver combinaçao, comparar

array1[1] com array2[3] e array1[2] com array2[4]

E assim conscutivamente.

É isso que preciso fazer e não estou conseguindo.

Porem, isso tem quew ser dinamico. Não pode ser da forma qe fiz acima pois haverá uma hora que um array terá maior quantidade e indices.

Editado por Carlos Rocha
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...