Ir para conteúdo

POWERED BY:

Arquivado

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

felipebmfaria

[Resolvido] Imprimir apenas valores pré-determinados

Recommended Posts

Boa tarde,

 

Estou desenvolvendo um script de pedidos.

 

Estou enviando valores via post para uma tela, mas eu quero pegar e imprimir somente os valores onde o campo 'quantidade seja maior do que zero'. O problema é que o id também deve obedecer a esta 'restrição' mas eu nao estou conseguindo faze-la.

 

Para facilitar o entendimento:

- Tenho um grid na pagina 'form.php' com os campos 'id' e 'quantidade'

- Na pagina 'ver_itens_pedido.php' vou pegar somente os itens onde a quantidade seja maior do que zero, até aí consigo fazer, mas nao consigo restringir o 'id' dos registros onde a quantidade é igual a zero.

 

$qtde = $_POST['quantidade'];
 foreach($qtde as $quantidade) {
   if ($quantidade!='0' && $quantidade!='') {
  echo 'Quantidade: '.$quantidade . "<br>\n";

  	  $input = $_POST['codigo'];
          foreach($input as $id) {
               echo 'Id: '.$id . "<br>\n";
            } 
		 } 
		 else { }  
	     } 

 

Alguém tem uma idéia???

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentou repedir o if do foreach $qtde, no foreach $input.

 

Ex:

 

$qtde = $_POST['quantidade'];
 foreach($qtde as $quantidade) {
   if ($quantidade!='0' && $quantidade!='') {
         echo 'Quantidade: '.$quantidade . "<br>\n";

                 $input = $_POST['codigo'];
          foreach($input as $id) {
              if ($quantidade!='0' && $quantidade!='') {          
                  echo 'Id: '.$id . "<br>\n";
            } 
                        } 
                        else { }  
                    } 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parse error: syntax error, unexpected T_ELSE in C:\xampp\htdocs\cosmetica\admin_consultor\pedidos\visualizar_itens_pedido.php on line 28

 

Apareceu a mensagem de erro.

 

Tentei alterar o else, mas aí imprime todos os id's, até restringe a quantidade, mas imprime todos os id's.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que tinha um "{" a mais.... tenta ai!!!

 

$qtde = $_POST['quantidade'];
 foreach($qtde as $quantidade) {
   if ($quantidade!='0' && $quantidade!='') {
         echo 'Quantidade: '.$quantidade . "<br>\n";

                 $input = $_POST['codigo'];
          foreach($input as $id) {
              if ($quantidade!='0' && $quantidade!='')          
                  echo 'Id: '.$id . "<br>\n";
            } 
                        } 
                        else { }  
                    } 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não deu erro, mas restringiu somente a quantidade, os id's continuam sendo impressos.

 

Quantidade: 10
Id: 46574564
Id: 231564
Id: 545415
Id: 215454
Id: 3465465

 

Tinha que imprimir assim:

Quantidade: 10
Id: 3465465

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta o form.php, talvez seja possível alterar alguma coisa para facilitar na hora de comparar no ver_itens_pedido.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou postando os codigos:

 

form.php

while ($row = mysql_fetch_assoc($result))
   {
   $id = $row["id"];
   $codigo = $row["codigo"]; 
   $descricao=$row["descricao"];
   $valor=number_format($row["valor"],'2',',','.');
       echo "
        <tr>
      	    <td bgcolor='#E0DFE3' align='center'><input type='text' name='codigo[]' value='$codigo'></td>
           <td bgcolor='#E0DFE3' align='left'>  $descricao</td>
    <td bgcolor='#E0DFE3' align='center'><input type='text' name='quantidade[]' size='2' value='0'></td>
           <td bgcolor='#E0DFE3' align='left'>  R$ $valor</td>
        </tr>";
     }
echo '</table>';
echo "<br><br>";
echo "<input type='submit' value=' >> fechar pedido '>";

 

visualizar_itens_pedido.php

$qtde = $_POST['quantidade'];
 foreach($qtde as $quantidade) {
   if ($quantidade!='0' && $quantidade!='') {
         echo 'Quantidade: '.$quantidade . "<br>\n";

                 $input = $_POST['codigo'];
          foreach($input as $id) {
              if ($quantidade!='0' && $quantidade!='')          
                  echo 'Id: '.$id . "<br>\n";
            } 
                        } 
                        else { }  
                    } 

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei assim, mas continua nao fazendo o desejado:

 

$qtde = $_POST['quantidade'];
 foreach($qtde as $quantidade) {
   if ($quantidade!='0' && $quantidade!='') {
         echo 'Quantidade: '.$quantidade . "<br>\n";

            $input = $_POST['codigo'];
            foreach($input as $id) {
               echo 'Id: '.$id . "<br>\n";
            } 
                        } 
                        else { }  
                    } 

 

Alguém tem uma idéia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque um contador e o use para criar um array bi-dimencional, onde cada posição terá codigo, quantidade juntos.

 

$count = 0;
while ($row = mysql_fetch_assoc($result))
{
   $id = $row["id"];
   $codigo = $row["codigo"]; 
   $descricao=$row["descricao"];
   $valor=number_format($row["valor"],'2',',','.');
       echo "
        <tr>
           <td bgcolor='#E0DFE3' align='center'><input type='text' name='{$count}[codigo]' value='$codigo'></td>
           <td bgcolor='#E0DFE3' align='left'>  $descricao</td>
           <td bgcolor='#E0DFE3' align='center'><input type='text' name='{$count}[quantidade]' size='2' value='0'></td>
           <td bgcolor='#E0DFE3' align='left'>  R$ $valor</td>
        </tr>";
  $count++;
}
echo '</table>';
echo "<br><br>";
echo "<input type='submit' value=' >> fechar pedido '>";

 

Saída:


array
 0 => 
   array
     'codigo' => string '180113-OI11' (length=11)
     'quantidade' => string '0021' (length=4)
 1 => 
   array
     'codigo' => string '180115-OI11' (length=11)
     'quantidade' => string '0025' (length=4)
 2 => 
   array
     'codigo' => string '180111-OI11' (length=11)
     'quantidade' => string '0721' (length=4)

continua...

 

Desta forma fica mais fácil para você trabalhar em cima. :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi como faz no form, mas e no visualizar_itens_pedido.php, como faz?

 

Entendi que o valor passado será precedido pelo contador, ex: 001, 002... mas o contador está no 'name'? Pensei que estivesse no value...

 

não entendi muito bem, pode ajudar?

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria algo mais ou menos assim:

<?php

$values = $_POST;

for($i=0;$i<count($values);$i++)
{
   if(!empty($values[$i]['quantidade']) and intval($values[$i]['quantidade']) != 0)
   {
       echo 'Quantidade: ', $values[$i]['quantidade'], '<br>';
       echo 'ID: ', $values[$i]['quantidade'], '<br>';
   }
}

?>

 

 

Fiz na corrida, dá uma conferida se tá ok :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
foreach ($_POST as $valor) {
if ((int)$valor['quantidade'] > 0) {
	echo 'Quantidade: ', $valor['quantidade'], '<br />';
	echo 'Codigo: ', $valor['codigo'], '<br /><br />';
}
}

 

Sei que já resolvemos o problema, porém desta forma obtemos o mesmo resultado, porém com maior performance e clareza do script.

 

[]'s

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.