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

loop na query


Carlos Rocha

Pergunta

Ola pessoal.

Bom fim de semana a todos.

Tenho uma função que complementa uma query.

Acontece que essa função pega do where para frente.

Nela é feito um loop pelos id's dos produtos da tabela de produtos_lista.

Porem agora surgiu uma necessidade de comparar o id e o numero da lista de produtos para saber se o determinado id esta na determinada lista.

function QuerySQL_ObtemListaDeItens(){
        $itens = "where (";
        $STR = "";
        if ($this->QuantosItens()>0) {
            $fixo = "pl.id_produto =";
            for ($i=0;$i<$this->QuantosItens();$i++)
            {
                $STR = $STR . $fixo . " " . $this->item_codigo[$i];
                if ($i+1<$this->QuantosItens()) 
                {
                    $STR = $STR . " or ";
                }
            }
        }
        if (!$STR == "") {
            return $itens . $STR;
        }else{
            //Caso não exista nenhum item no carrinho o codigo final SQL, procurara por um item que não existe na tabela de produtos, neste caso  -1.
            return "where id = -1";
        }
    } /* QuerySQL_ObtemListaDeItens() */
Essa função esta funcionando. Eu gostaria de fazer esse where mais ou menos assim:
where 
 ((pl.id_produto = 3 and pl.id_lista = 1) or (pl.id_produto = 6 and pl.id_lista = 1))
Grato a quem puder ajudar. Essa é query:
$QuerySQL = "
             select 
               p.id, p.foto, p.nome, pl.preco_produto, p.quantidadecaixa, p.grupo, g.nome, p.fornecedor
             from 
               produtos_lista pl 
                 inner join produtos p on p.id = pl.id_produto
                 inner join grupos g on p.grupo = g.id_grupo
               " . $MeuCarrinho->QuerySQL_ObtemListaDeItens(). ") and pl.data_fim>= CURRENT_DATE";

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

1 resposta a esta questão

Posts Recomendados

  • 0

Consegui.

Ficou assim:

/*
        QuerySQL_ObtemListaDeItens
        Este metodo gera uma parte do codigo SQL que sera usado para buscar os dados
        do carrinho de compra (id, NOME e PREÇO). O comando SQL final tera como finalidade
        de buscar no banco de dados apenas os dados dos itens incluidos no carrinho.
    */
    function QuerySQL_ObtemListaDeItens(){
        $itens = "where (";
        $STR = "";
        if ($this->QuantosItens()>0) {
            $fixo = "(pl.id_produto =";
            for ($i=0;$i<$this->QuantosItens();$i++)
            {
                $STR = $STR . $fixo . " " . $this->item_codigo[$i]." and pl.id_lista=". $this->item_lista[$i].")";
                if ($i+1<$this->QuantosItens()) 
                {
                    $STR = $STR . " or ";
                }
            }
        }
        if (!$STR == "") {
            return $itens . $STR;
        }else{
            //Caso não exista nenhum item no carrinho o codigo final SQL, procurara por um item que não existe na tabela de produtos, neste caso  -1.
            return "where id = -1";
        }
    } /* QuerySQL_ObtemListaDeItens() */

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...