Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carcleo

[Resolvido] conferindo em um array

Recommended Posts

Olá pessoal.

Boa Noite!

 

Estou implementando aqui o carrinho de compras e, dando um print_r($Carrinho); na classe carrinho, em um determinado momento retornou:

TCarrinho Object
(
   [item_codigo] => Array
       (
           [0] => 3
           [1] => 6
           [2] => 3
       )

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

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

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

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

   [item_pgto_prazo] => Array
       (
           [0] => 30 dias
           [1] => 30 dias
           [2] => 30 dias
       )

   [item_imposto] => Array
       (
           [0] => 10.00
           [1] => 20.00
           [2] => 0.00
       )

)

Eu tenho em uma página, uma lista (while) que me retorna para cada laço, dois dados de preodutos:

 

id_produtos

lista_do produto

 

Eu gostaria de, a cada volta do while, conferir no print_r() se tem uma dupla de item_codigo x item_lista que seja igual à dupla do while id_produtos

lista_do produto

 

Se sim, marcar uma chekbox na formulario de produtos e desbilitar o botão enviar do mesmo.

 

Como faço isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie getters para buscar estas propriedades(item_codigo, item_lista).

 

public function getItemCodigo( )
{
   return $this->item_codigo;
}
public function getItemLista( )
{
   return $this->item_lista;
}

 

Agora você está trabalhando com arrays :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas ai, como eu faria as comparações?

 

Tipo:

 

 

Busca no array e procura se os pares codigo,lista do array contem o par codigo,lista do laço do while.

 

Essa esta sendo a minha diiculade agora.

 

Grato pela resposta anterior.

 

Fiz assim:

public function getCodigoLista( )
{
   return array($this->item_codigo, $this->item_lista);
}

E me retonou assim:

Array
(
   [0] => Array
       (
           [0] => 3 -> Codigo
           [1] => 6 -> Codigo
       )

   [1] => Array
       (
           [0] => 2 -> Lista
           [1] => 2 -> Lista
       )

)

 

Agora, como comparar os conjuntos Codigo,Lista do carrinho com o resultado de cada volta do while?

 

Pelo array_search:

 

$indice = array_search("Igor", $pessoas);

 

Se o a função do carrinho getCodigoLista( ) trouxesse apenas o codigo ou a lista, ela resolvia o problema.

 

Mas a funçao getCodigoLista( ) traz um conjunto. Aí não estou sabendo pesquisar no array.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Monte o array de outra forma

 

<?php

Class Test
{
   private $item_codigo;
   private $item_lista;
   public function __construct( )
   {
       $this->item_codigo = array( 3, 6, 3 );
       $this->item_lista  = array( 1, 1, 5 );
   }
   public function getParItem( )
   {
       for( $i = 0; $i < count( $this->item_codigo ); $i++ )
       {
           $par_item[ ] = array( $this->item_codigo[ $i ], $this->item_lista[ $i ] );
       }
       return $par_item;
   }
}

$test = new Test;
print_r( $test->getParItem( ) );

 

Saída

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

   [1] => Array
       (
           [0] => 6
           [1] => 1
       )

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

)

 

Para cada posição do array você tem o par item_codigo, item_lista

 

$test = new Test;
$par_item = $test->getParItem( );

while( $row = mysql_fetch_assoc( $query ) )
{
   for( $i = 0; $i< count( $par_item ); $i++ )
   {
        if( $row[ 'id_produtos' ] == $par_item[ $i ] [ 0 ] and $row[ 'lista_do_produto' ] == $par_item[ $i ] [ 1 ] )
        {
            echo 'Par Combina!';
        }
   }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz, não sei o que acontece.

 

<?php
/*
Classe TCarrinho
*/
class TCarrinho {
var $item_codigo = array();
var $item_quantidade = array();
var $item_lista = array();
var $item_observa_cli = array();
var $item_pgto_tipo = array();
var $item_pgto_prazo = array();
var $item_imposto = array();

public function getParItem( )
   {
       for( $i = 0; $i < count( $this->item_codigo ); $i++ )
       {
           $par_item[ ] = array( $this->item_codigo[ $i ], $this->item_lista[ $i ] );
       }
       return $par_item;
   }
function ObtemPosicao($codigo,&$posicao,$lista){
	//Percorrendo o vetor
	for($i=0;$i<count($this->item_codigo);$i++) {
		if (($this->item_codigo[$i] == $codigo) and ($this->item_lista[$i] == $lista)) 
		{
			$posicao = $i;
			 return TRUE;
	    }
	 }

}/* ObtemPosicao() */

/*
	AdicinarItem
	Este metodo adiciona um item no carrinho
*/
function AdicionarItem($codigo,$quantidade,$lista, $pgto_tipo, $observa_cli,$pgto_prazo, $imposto) 
{
	//Inicializando parametro
	$posicao = -1; 
	$achou = $this->ObtemPosicao($codigo,$posicao,$lista);
	if (!$achou){
		$this->item_codigo[] = $codigo;
		$this->item_quantidade[] = $quantidade;
		$this->item_lista[] = $lista;			
		$this->item_pgto_tipo[] = $pgto_tipo;			
		$this->item_observa_cli[] = $observa_cli;
		$this->item_pgto_prazo[] = $pgto_prazo;
		$this->item_imposto[] = $imposto;
	}
} /* AdicionarItem() */

.........

De todo jeito, em vez de sair:

Array -> 1->Codigo, Lista;  2->Codigo, Lista; 

Só sai:

Array -> 1->Codigo, Codigo;  2->Lista, Lista; 

 

Deixa me ver se facilita.

 

Dando um print_r() em toda a classe carrinho sai o seguinte:(No momento desse teste claro. rsrs)

TCarrinho Object
(
   [item_codigo] => Array
       (
           [0] => 3
           [1] => 6
           [2] => 1
       )

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

   [item_lista] => Array
       (
           [0] => 2
           [1] => 2
           [2] => 4
       )

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

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

   [item_pgto_prazo] => Array
       (
           [0] => 30 dias
           [1] => 30 dias
           [2] => 
       )

   [item_imposto] => Array
       (
           [0] => 0.04
           [1] => 0.00
           [2] => 0.00
       )

)

Preciso pegar as combinações item_codigo,item_lista e ver se tem algum laço do while igual.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom. Com um pouco de ajuda estou avançando.

 

Com essa array:

Array
(
   [0] => Array
       (
           [0] => 3  (codigo)
           [1] => 3  (Lista)
       )

   [1] => Array
       (
           [0] => 1  (codigo)
           [1] => 4  (Lista)
       )

)

Ou essa (ai será a forma que vocês dominarem mais).

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

   [1] => Array
       (
           [0] => 3  (Lista)
           [1] => 4  (Lista)
       )

)

Estando dentro de um while:

while()
{
 ...... $codigo, $lista  // de cada produto
}

Como posso comparar os resultados e ver, se dentro daquele array tem algum para que seja identico?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que faz esse while ?

 

/*
Array
(
   [0] => Array
       (
           [0] => 3  (codigo)
           [1] => 3  (Lista)
       )

   [1] => Array
       (
           [0] => 1  (codigo)
           [1] => 4  (Lista)
       )

)
*/
while( $row = mysql_fetch_assoc( $query ) )
{
   for( $i = 0; $i< count( $par_item ); $i++ )
   {
        if( $row[ 'id_produtos' ] == $par_item[ $i ] [ 0 ] and $row[ 'lista_do_produto' ] == $par_item[ $i ] [ 1 ] )
        {
            echo 'Par Combina!';
        }
   }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

E o seguinte:

 

O while é para listar os produtos para venda:

 

id_produto

id_lista (cada semana, é liberada uma lista de produtos em promoção)

nome

preco

...

 

daí o cliente clika em "enviar para o carrinho"

 

Daí é criada a classe TCarrinho, nela, eu fiz como voce disse:

Adicionei à classe:

public function getParItem( )
   {
       for( $i = 0; $i < count( $this->item_codigo ); $i++ )
       {
           $par_item[ ] = array( $this->item_codigo[ $i ], $this->item_lista[ $i ] );
       }
       return $par_item;
   }

Agora tenho uma nova matriz com o par item_codigo, item_lista para cada produto adicionado ao carrinho.

 

Voltando a pagina que lista os produtos, eu gostaria de saber (para cada preoduto listado no while), se ele ja foi adicionado ao carrinho ou não.

 

Caso já tenha sido adicionado ao carrinho, a ideia é desabilitar o botão enviar para o carrinho.

 

Como eu pretende fazer isso:

 

A cada laço do while.

 

eu pego os campos $codigo, $lista e coloco dentro de um array e compraro se existe, no carrinho, um produto adicionado com aqueles numeros de codigo e lista

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que você tem que fazer é o que postei anteriormente, dentro while, pegar esses valores e comparar dentro do for.

 

No for, ele vai testar esses dois valores(do while) em cada posição do vetor.

 

while( ... )
{
   // os valores do while para comparação($codigo, $lista)
   // percorre o vetor $par_item com os pares $par_item[ $i ] [ 0 ] = cogigo, $par_item[ $i ] [ 1 ] = lista	
   for( $i = 0; $i< count( $par_item ); $i++ )
   {
        if( $codigo == $par_item[ $i ] [ 0 ] and $lista == $par_item[ $i ] [ 1 ] )
        {
            echo 'Par Combina!';
        }
   }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ficou assim:

 

Obrigado:

$par_item = $MeuCarrinho->getParItem();
if (count( $par_item )>0)
{
for( $i = 0; $i< count( $par_item ); $i++ )
	{
		 if( $id_produto == $par_item[ $i ] [ 0 ] and $id_lista == $par_item[ $i ] [ 1 ] )
		 {
			 echo "Par Combina!".$i;
		 }
	}		
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos testar usando 3 combinações.

 

<?php
Class Test
{
   private $item_codigo;
   private $item_lista;
   public function __construct( )
   {
       $this->item_codigo = array( 3, 6, 3, 5, 9 );
       $this->item_lista  = array( 1, 1, 5, 7, 6 );
   }
   public function getParItem( )
   {
       for( $i = 0; $i < count( $this->item_codigo ); $i++ )
       {
           $par_item[ ] = array( $this->item_codigo[ $i ], $this->item_lista[ $i ] );
       }
       return $par_item;
   }
}

// simulando dados do carrinho de compras
$test = new Test;
$par_item = $test->getParItem( );

// simulando registros do banco de dados
$codigo = array( 2, 5, 7, 3, 9 );
$lista  = array( 4, 7, 1, 1, 6 );

// simulando o while
for( $j = 0; $j < count( $codigo ); $j++ )
{
   for( $i = 0; $i< count( $par_item ); $i++ )
   {
        if( $codigo[ $j ] == $par_item[ $i ] [ 0 ] and $lista[ $j ] == $par_item[ $i ] [ 1 ] )
        {
            echo 'Par Combina! ', $codigo[ $j ], ' = ', $par_item[ $i ] [ 0 ], '; ', $lista[ $j ], ' = ', $par_item[ $i ] [ 1 ], ';<br/>';
        }
   }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz vou fazer uma pegunta que parece ser boba.

 

Tem um forma diferente de testar se :

 

if(!( $codigo[ $j ] == $par_item[ $i ] [ 0 ] and $lista[ $j ] == $par_item[ $i ] [ 1 ] ))

 

Não ser verdade?

 

Sem ser da forma acima?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi :huh:

 

Vou te passar um script para você poder ver o resultado de alguns testes

 

<?php

$bool = array( 'TRUE', 'FALSE' );
$not  = array( '!', null );

for( $i = 0; $i < 1000; $i++ )
{
       $test = sprintf( 
               "( %s ( %s %s == %s %s ) and %s( %s %s == %s %s ) )",
               $not[ rand( 0, 1 ) ], 
               $not[ rand( 0, 1 ) ], 
               $bool[ rand( 0, 1 ) ],  
               $not[ rand( 0, 1 ) ], 
               $bool[ rand( 0, 1 ) ],  
               $not[ rand( 0, 1 ) ], 
               $not[ rand( 0, 1 ) ], 
               $bool[ rand( 0, 1 ) ],  
               $not[ rand( 0, 1 ) ], 
               $bool[ rand( 0, 1 ) ] );

       if( eval( "return $test;" ) )
       {
               echo '<br/>', $test, ' => TRUE<br/>';
       }
       else
       {
               echo '<br/>', $test, ' => FALSE<br/>';
       }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha só o que eu quero.

 

Tela de exibição dos produtos:

Cliente compra produto.

Tela Carrinho

Cliente retorna para comprar de novo.

De novo na tela de produtos.

Os produtos já comprados, não são exoibidos no while dos produtos.

 

o que eu fiz:

 

Na classe carrinho, criei uma funçao que monta um array com os codigos e listas dos produtos adicionados:

 

$MeuCarrinho->getParItem();

 

Dentro do while, comparo o id do produto e a lista que ele pertence ao campo 0 da funçao do carrinho e 1 respectivamente.

Caso os pares não sejam iguais, mostra os dados do produtos, caso contrario, passa para o proximo produto.

 

O que acontece:

 

Tela produtos primeira vez.

Aqui, a sessão $MeuCarrinho ainda não foi iniciada. Então, exibo o formulario com todos os produtos.

1.jpg

Daí eu jogo os produtos no carrinho e volto para escolher outros produtos.

Quando chego na tela de produtos novamente, a sessão $MeuCarrinho ja foi iniciada, e oulha o que esta listando

2.jpg

Eis o código do while:

 	 while(list($id_lista, $foto, $id_produto, $nome_produto, $id_fornece, $nome_razao_fornece, $nome_grupo, $quantidadecaixa, $preco, $condicao,$observacao, $imposto) = mysql_fetch_row($sql_produtos_query))
{
if(session_is_registered("MeuCarrinho"))
{
   $_SESSION[MeuCarrinho] = serialize($MeuCarrinho);
$MeuCarrinho = unserialize($_SESSION[MeuCarrinho]);	
  //print_r($MeuCarrinho->getParItem())."<p>";
$par_item = $MeuCarrinho->getParItem();
if (count( $par_item )>0)
{
	for( $i = 0; $i< count( $par_item ); $i++ )
		{
			        print $id_produto ." AAAAAAAAAAAAAA ".$par_item[ $i ] [ 0 ]."<p>";
       print $id_lista ." AAAAAAAAAAAAA ".$par_item[ $i ] [ 1 ]."<p>";

			 if( 
			     ($id_produto != $par_item[ $i ] [ 0 ] or $id_lista != $par_item[ $i ] [ 1 ])
				 and
				 !($id_produto == $par_item[ $i ] [ 0 ] and $id_lista == $par_item[ $i ] [ 1 ])
			 )
			 {
			   echo "<input type=\"hidden\" name=\"{$i}[id_prod]\"  id=\"{$i}[id_prod]\" value=\"$id_produto\">
					 <input type=\"hidden\" name=\"{$i}[quan]\" id=\"{$i}[quan]\" value=\"\">	
					 <input type=\"hidden\" name=\"{$i}[id_lista]\" name=\"{$i}[id_lista]\" value=\"$id_lista\">		   
					 <input type=\"hidden\" name=\"{$i}[imposto]\" name=\"{$i}[imposto]\" value=\"$imposto\">		   
					";
			   include("../global/funcoes_php/foto_ver.php");
			   $icone = "<img border=0 src='../img/saiba_mais.png'  alt='Saiba Mais'>";						
			   if ($observacao=="") {$observacao="Sem observação";}
			   if ($condicao==1)	  {$condicao="Complemento";}
			   if ($condicao==2)	  {$condicao="Encarte";}
			   $vp2 = $vp - 1;
			   $ob2 = $ob - 1;
			   echo "<tr>
						<td align=center>$id_lista</td>
						<td align=letf>$condicao</td>
						<td align=let>$nome_produto</td>
						<td align=center>$quantidadecaixa</td>
						<td align=right>R$ ". number_format($preco/$quantidadecaixa, 2, '.', '')."</td>
						<td align=right>R$ ". number_format($preco, 2, '.', '')."</td>
						<td align=right>
		  <input type=text id={$i}[quant] value=0 size=2 style=\"text-align: center;\" 
		  onKeyPress=\"BloqueiaLetras();\" 
		  onchange=\"calculo(this.value, $preco,'{$i}[quant]','{$i}[quan]','{$i}[label_preco]');\" >
						</td>			  
						<td align=right>R$ <label id=\"{$i}[label_preco]\">0.00</label></td>			  
						<td align=left>$observacao</td>
						<td align=center valign=\"middle\">
		  <a href=\"#\" 
		  onclick=\"this.href=' carrinho.php?op=adicionar&id_produto=$id_produto&id_da_lista=$id_lista&quantidade='+document.getElementById('{$i}[quant]').value+'&pgto_tipo='+document.getElementById('{$vp2}[radio_pgto]').value+'&observa_cli='+document.getElementById('{$ob2}[observa_cli]').value'&imposto='+document.getElementById('{$i}[imposto]').value\" > 
		  Adicionar<br>Ítem</a>			 
						</td>
					  </tr>";
						   $i++;                                               	
			}
		}		
}	
 }
 else
 {
                  print $id_produto ." 222222222222 ".$id_lista;

			   echo "<input type=\"hidden\" name=\"{$i}[id_prod]\"  id=\"{$i}[id_prod]\" value=\"$id_produto\">
					 <input type=\"hidden\" name=\"{$i}[quan]\" id=\"{$i}[quan]\" value=\"\">	
					 <input type=\"hidden\" name=\"{$i}[id_lista]\" name=\"{$i}[id_lista]\" value=\"$id_lista\">		   
					 <input type=\"hidden\" name=\"{$i}[imposto]\" name=\"{$i}[imposto]\" value=\"$imposto\">		   
					";
			   include("../global/funcoes_php/foto_ver.php");
			   $icone = "<img border=0 src='../img/saiba_mais.png'  alt='Saiba Mais'>";						
			   if ($observacao=="") {$observacao="Sem observação";}
			   if ($condicao==1)	  {$condicao="Complemento";}
			   if ($condicao==2)	  {$condicao="Encarte";}
			   $vp2 = $vp - 1;
			   $ob2 = $ob - 1;
			   echo "<tr>
						<td align=center>$id_lista</td>
						<td align=letf>$condicao</td>
						<td align=let>$nome_produto</td>
						<td align=center>$quantidadecaixa</td>
						<td align=right>R$ ". number_format($preco/$quantidadecaixa, 2, '.', '')."</td>
						<td align=right>R$ ". number_format($preco, 2, '.', '')."</td>
						<td align=right>
		  <input type=text id={$i}[quant] value=0 size=2 style=\"text-align: center;\" 
		  onKeyPress=\"BloqueiaLetras();\" 
		  onchange=\"calculo(this.value, $preco,'{$i}[quant]','{$i}[quan]','{$i}[label_preco]');\" >
						</td>			  
						<td align=right>R$ <label id=\"{$i}[label_preco]\">0.00</label></td>			  
						<td align=left>$observacao</td>
						<td align=center valign=\"middle\">
		  <a href=\"#\" 
		  onclick=\"this.href=' carrinho.php?op=adicionar&id_produto=$id_produto&id_da_lista=$id_lista&quantidade='+document.getElementById('{$i}[quant]').value+'&pgto_tipo='+document.getElementById('{$vp2}[radio_pgto]').value+'&observa_cli='+document.getElementById('{$ob2}[observa_cli]').value'&imposto='+document.getElementById('{$i}[imposto]').value\" > 
		  Adicionar<br>Ítem</a>			 
						</td>
					  </tr>";
						   $i++; 		
}

}	

Observe que os produtos já escolhidos ( 3 produtos), aparecem de novo.

Onde estou errando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque este código antes do IF da verificação

echo $id_produto , ' = ', $par_item[ $i ] [ 0 ], '; ', $id_lista, ' = ', $par_item[ $i ] [ 1 ], ';<br/>';

 

Veja se em algum momento os pares vão "casar".

 

Se "casarem", o problema está no IF, se não "casarem", verifique se a comparação está pegando os pares corretos(codigo == codigo, lista == lista)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, estive pensando no seguinte:

 

uma vez que tenho o array:

 

$MeuCarrinho->getParItem();

Que retorna (por exemplo)

Array
(
   [0] => Array
       (
           [0] => 3 (Codigo)
           [1] => 2 (Lista)
           [2] => 1 (Quantidade)
           [3] => 3.30132 (Preco)
       )

   [1] => Array
       (
           [0] => 4 (Codigo)
           [1] => 2 (Lista)
           [2] => 2 (Quantidade)
           [3] => 5.0015 (Preco)
       )

   [2] => Array
       (
           [0] => 5 (Codigo)
           [1] => 2 (Lista)
           [2] => 3 (Quantidade)
           [3] => 15.6 (Preco)
       )

)

E posso criar um array com o codigo e a lista do produto exibido em cada laço do while:

 

$laco_while[]=array(array($id_produto,$id_lista));

Que retorna (por exemplo)

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

Como faço para pesquisar no Array $MeuCarrinho->getParItem(); se tem alguma combinação igual ao Array $laco_while[]?

 

Pensei na função array_search() mas ela só busca string dentro da array;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Minha lógica e explicação estavam se baseando neste tipo de array que você mencionou no post #6

Array
(
   [0] => Array
       (
           [0] => 3  (codigo)
           [1] => 3  (Lista)
       )

   [1] => Array
       (
           [0] => 1  (codigo)
           [1] => 4  (Lista)
       )

)

 

 

Mas pelo que você postou, você está fazendo diferente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É isso mesmo só que os outros dois dados são quantidade e valor .

Mas eu queria uma funçao que buscasse uma array dentro de outra. Eliminado o for.

 

Mas Carlos coelho.

coloquei os echos antes do if e saiu assim:

 

Como tem 3 itens no carrinho o for dá 3 voltas para cada laço do while

Daí, ele faz comparação que não poderia fazer;

 

No caso desse primeiro bloco, ele acha uma comparação mas como fazer para que, se ele achat a comparação passar para a outra volta do while?

 

3 - 3 = 2 - 2
3 - 4 = 2 - 2
3 - 5 = 2 - 2


4 - 3 = 2 - 2
4 - 4 = 2 - 2
4 - 5 = 2 - 2



6 - 3 = 2 - 2
6 - 4 = 2 - 2
6 - 5 = 2 - 2


5 - 3 = 2 - 2
5 - 4 = 2 - 2
5 - 5 = 2 - 2


1 - 3 = 2 - 2
1 - 4 = 2 - 2
1 - 5 = 2 - 2 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é.

 

Fiz uma função mas não esta dando certo.

Outro problema é que se ele encontrar o produto ja adicionado, ele pula para o proximo laço do while (produto) para não mostrar ele novamente.

Esta zerando o que vem do banco.

 

Onde estou errando?

 	 while(list($id_lista, $foto, $id_produto, $nome_produto, $id_fornece, $nome_razao_fornece, $nome_grupo, $quantidadecaixa, $preco, $condicao,$observacao, $imposto) = mysql_fetch_row($sql_produtos_query))
{
if(session_is_registered("MeuCarrinho"))
{	
function array_array()
{
	for( $cl = 0; $cl< count( $MeuCarrinho->getParItem() ); $cl++ )
	{
		 if($id_produto == $MeuCarrinho->getParItem[ $cl ] [ 0 ] and $id_lista == $MeuCarrinho->getParItem[ $cl ] [ 1 ])
		 {
			 return true;
			 break;
		 }
	}
	return false;
}

$par_item = $MeuCarrinho->getParItem();
 if (array_array()==false)
 {
   echo "<input type=\"hidden\" name=\"{$i}[id_prod]\"  id=\"{$i}[id_prod]\" value=\"$id_produto\">
		 <input type=\"hidden\" name=\"{$i}[quan]\" id=\"{$i}[quan]\" value=\"\">	
		 <input type=\"hidden\" name=\"{$i}[id_lista]\" name=\"{$i}[id_lista]\" value=\"$id_lista\">		   
		 <input type=\"hidden\" name=\"{$i}[imposto]\" name=\"{$i}[imposto]\" value=\"$imposto\">		   
		";
   include("../global/funcoes_php/foto_ver.php");
   $icone = "<img border=0 src='../img/saiba_mais.png'  alt='Saiba Mais'>";						
   if ($observacao=="") {$observacao="Sem observação";}
   if ($condicao==1)	  {$condicao="Complemento";}
   if ($condicao==2)	  {$condicao="Encarte";}
   $vp2 = $vp - 1;
   $ob2 = $ob - 1;
   echo "<tr>
			<td align=center>$id_lista</td>
			<td align=letf>$condicao</td>
			<td align=let>$nome_produto</td>
			<td align=center>$quantidadecaixa</td>
			<td align=right>R$ ". number_format($preco/$quantidadecaixa, 2, '.', '')."</td>
			<td align=right>R$ ". number_format($preco, 2, '.', '')."</td>
			<td align=right>
 <input type=text id={$i}[quant] value=0 size=2 style=\"text-align: center;\" 
 onKeyPress=\"BloqueiaLetras();\" 
 onchange=\"calculo(this.value, $preco,'{$i}[quant]','{$i}[quan]','{$i}[label_preco]');\" >
			</td>			  
			<td align=right>R$ <label id=\"{$i}[label_preco]\">0.00</label></td>			  
			<td align=left>$observacao</td>
		  </tr>";
			   $i++;      
   }		
 }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.