NFelipeFL 1 Denunciar post Postado Abril 7, 2012 O que tô tentando fazer é o seguinte: puxar dados de um mysql e a partir dele formar as virgulas (como produto: P, M e G, etc). O código atual que utilizo é este: echo "<Br>"; if ($produtoP>"0") echo "P "; if ($produtoM>"0") echo "M "; if ($produtoG"0") echo "G "; if ($produtoGG>"0") echo "GG"; if ($produtoP=="0" && $produtoM=="0" && $produtoG=="0" && $produtoGG=="0") echo "Esgotado."; Ele faz a verificação se existe estoque para o tamanho do produto e, se existir, retorna com o echo com o tamanho do produto que ainda há em estoque (No caso acima fica sem virgula, mais ou menos assim, ex: P M G (existem produtos do tamanho P, M e G no estoque). Eu estava modificando para este: echo "<Br>"; if ($produtoP>"0" && $produtoM=="0" && $produtoG=="0" && $produtoGG=="0") echo "P."; echo "<Br>"; if ($produtoP>"0" && $produtoM>"0" && $produtoG=="0" && $produtoGG=="0") echo "P e M."; echo "<Br>"; if ($produtoP>"0" && $produtoM>"0" && $produtoG>"0" && $produtoGG=="0") echo "P, M e G."; echo "<Br>"; if ($produtoP>"0" && $produtoM>"0" && $produtoG>"0" && $produtoGG>"0") echo "P, M, G e GG."; echo "<Br>"; if ($produtoP>"0" && $produtoM=="0" && $produtoG>"0" && $produtoGG>"0") echo "P, G e GG."; echo "<Br>"; if ($produtoP>"0" && $produtoM=="0" && $produtoG>"0" && $produtoGG=="0") echo "P e G."; echo "<Br>"; if ($produtoP>"0" && $produtoM=="0" && $produtoG=="0" && $produtoGG>"0") echo "P e GG."; No código acima só fiz a do tamanho P (e ainda está incompleto), e se eu fizer as outras vai ficar gigantesco o código. Tem como simplificar tudo isso? Mostrando a virgula corretamente de acordo com os produtos existentes no estoque? ate mais... Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Abril 7, 2012 Monta tudo em um array... if ($produtoP>"0"){ $array_tipos[] = 'P'; } if ($produtoM>"0"){ $array_tipos[] = 'M'; } ... if($produtoGG>"0"){ $array_tipos[] = 'GG'; } echo implode(', ', $array_tipos); Compartilhar este post Link para o post Compartilhar em outros sites
NFelipeFL 1 Denunciar post Postado Abril 7, 2012 acho que estou fazendo errado, testei de varias maneiras e sempre retorna erro: Notice: Undefined variable: array_tipos in c:\easyphp1.8\www\produto.php on line 39 Warning: implode(): Bad arguments. in c:\easyphp1.8\www\produto.php on line 39 Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Abril 7, 2012 Faça um pesquisa no banco que retorne somente os tamanhos que tenham no estoque e imprima. Compartilhar este post Link para o post Compartilhar em outros sites
NFelipeFL 1 Denunciar post Postado Abril 7, 2012 Eu já faço isso, Victor Cometti. Ele retorna mas retorna sem virgula, sem 'e'. Sem formatação. Edit: Consegui com o código do ESerra. Porém, há um probleminha.. (ver ultimo post) Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Abril 7, 2012 //varre as linhas while ($linha = mysql_fetch_assoc($sql)){ $tamanhos[] = $linha['tamanho']; } $ultimo = end($tamanhos);//pega o último //imprime printf('%d e %d',explode(",",array_pop($tamanhos)),$ultimo); acho q isso resolve Compartilhar este post Link para o post Compartilhar em outros sites
NFelipeFL 1 Denunciar post Postado Abril 7, 2012 O código do ESerra funcionou tranquilo, mas quando adicionei alguns códigos mysql ele misturou tudo.. :( Não entendi bem o seu codigo, Victor... abraço Edit: no erro que informei no código do ESerra, ele faz o seguinte: coloquei o ORDER by id asc. No código 1, ele lista corretamente. No código 2, ele repete o estoque do código 1 e lista o do código 2. Ficando assim: A CAMISA 1, existe M, G e GG. Já a CAMISA 2 existe P, M e GG. Ele está retornando na camisa 2: M, G, GG, P, M e GG (o negrito seria da camisa 1) Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Abril 7, 2012 como está sua pesquisa no banco? Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Abril 7, 2012 A cada volta do laço você eve dar um unset no array. Compartilhar este post Link para o post Compartilhar em outros sites
NFelipeFL 1 Denunciar post Postado Abril 7, 2012 Consegui Victor Cometti. ^_^ Obrigado novamente, ESerra. :grin: Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Abril 8, 2012 poste como conseguiu Compartilhar este post Link para o post Compartilhar em outros sites