Jump to content
Fórum Script Brasil
  • 0

loop na query


Carlos Rocha

Question

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";

Edited by Carlos Rocha
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...