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

Array com Session


viniciuscrn

Pergunta

Pessoal, é o seguinte venho me batendo com isso há alguns dias:

Estou fazendo um sitemazinho de Caixa de Supermercado. E minha dúvida está na hora da venda:

Tenho este arquivo que mostra os produtos já adicionados, e a busca por um novo produto:

___________________________________________________________________________

<?php

session_start();

$vprod = $_POST["txtprod"];

$chave = array_keys($vprod);

for($i=0;$i<sizeof($chave);$i++){

$indice = $chave[$i];

$cesta[$indice][descricao] = $vprod[$indice][$descricao];

}

$_SESSION[cesta] = $cesta;

$chavecesta = array_keys($_SESSION[cesta]);

for($i=0;$i<sizeof($chavecesta);$i++){

$indice = $chavecesta[$i];

echo $_SESSION[cesta][indice][descricao];

}

?>

<html>

<body>

<table border=1" width="600">

<form name="formpesquisaprodutovenda" method="post" action="../../Acoes/Venda/PesquisaProdutoVenda.php">

<tr>

<td>Informe o Produto:</td>

<td><input type="text" name="nomep" size="20"></td>

<td><input type="submit" value="pesquisar"></td>

</tr>

</form>

</table>

</body>

</html>

___________________________________________________________________________

e tenho este outro que mostra os produtos pesquisados e os adicionam no arquivo anterior:

___________________________________________________________________________

<?php

include("../../Conexao/Conexao.php");

$nomep = $_POST['nomep];

$query = "select * from produto where descricao like '%$nomep'";

$result = mysql_query($query,$conexao);

if(mysql_num_rows($result)== 0){

?>

Nenhum produto com esta descricao!<br>

<?php

}else{

?>

<table border="1">

<form name="formpesquisaproduto" method="post" action="../../Web/Venda/FormNovaVenda.php">

<tr>

<td>Descricao</td>

<td>preço</td>

<td>Quantidade</td>

<td>Acao</td>

</tr>

<?php

while($linha = mysql_fetch_array($result)){

$i=0;

$produto[$i][descricao] = $linha[descricao];

$produto[$i][preço] = $linha[preço];

$chave = array_keys($produto);

$indice = $chave[$i];

$descricao = $produto[$indice][descricao];

$preço = $produto[$indice][preço];

?>

<tr>

<td><input name="txtprod[<?php echo $indice?>][descricao]" value="<?php echo $descricao;?>"</td>

<td><input name="txtprod[<?php echo $indice?>][preço]" value="<?php echo $preço;?>"</td>

<td><input type="text" name="quant" size="1" value="1"></td>

<td><input type="submit" value="add"></td>

</tr>

<?php

$i++;

}

}

?>

</form>

</table>

<a href="../../Web/Venda/FormNovaVenda.php">voltar</a>

___________________________________________________________________________

Quero apenas que alguém me diga como ficar a listagem dos produtos um abaixo do outro no primeiro aquivo, pois já tentei de varias formas e não consegui. Obrigado.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
echo $_SESSION[cesta][indice][descricao]."<br>";
mas eu coloquei este echo no for, mas não imprime!
Só para organizar, modifiquei este arquivo que mostra os produtos, só que a session não está guardando o array dos produtos, ela só está exibindo o último:
<?php

session_start();

$vprod = $_POST["txtprod"];


$_SESSION[cesta] = $vprod;

$chavecesta = array_keys($_SESSION[cesta]);

for($i=0;$i<sizeof($chavecesta);$i++){
    $indice = $chavecesta[$i];

   
 echo $_SESSION[cesta][$indice][descricao];
 echo $_SESSION[cesta][$indice][preço];

}
?>
<html>
    <body>
        <table border="1" width="600">
            <form name="formpesquisaprodutovenda" method="post" action="../../Acoes/Venda/PesquisaProdutoVenda.php">
            <tr>
                <td>Informe o Produto:</td>
                <td><input type="text" name="nomep" size="20"></td>
                <td><input type="submit" value="pesquisar"></td>
            </tr>
            </form>
        </table>
    </body>
</html>

Link para o comentário
Compartilhar em outros sites

  • 0

Como que é que você esta mandando o campo "txtprod" para o php?

É um input text, checkbox, combobox?

É um array?

vamos supor que você estja enviando de um checkbox em array

<input type='checkbox' name='txtprod[]' />
obs.: mais se emcaixa com o seu php. Você esta recebendo ele certo.
<?php
session_start();
$vprod = $_POST["txtprod"];

//joga o valor para uma variavel da session
$_SESSION['cesta'] = $vprod;//coloque as aspas

//agora a session 'cesta' esta se apresentando assim $_SESSION['cesta'][0] = 'valor'
//Depois você cria um novo array com as chaves do array dentro da session cesta

$chavecesta = array_keys($_SESSION[cesta]);//não intendi pra que...

//por último o loop para imprimir os valores.
porem podemos usar o foreach para isso
foreach($_SESSION[cesta] as $i=>$val){

echo $val."<br>";
//ou
echo $val['descricao']."<br>";//porem não tem indicacao para esse indice.

}

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

  • 0

o txtprod vem de um input:

<td><input name="txtprod[<?php echo $indice;?>][descricao]" value="<?php echo $descricao;?>"</td>
só que agora o arquivo está funcionando, só que imprime apenas o primeiro produto da Session, quero saber como façou para exibir todos os produtos que estão nela, segue o código:
<?php

session_start();

$vprod = $_POST["txtprod"];

$_SESSION['cesta'] = $vprod;

$chavecesta = array_keys($_SESSION['cesta']);

for($i=0;$i<sizeof($chavecesta);$i++){
    $indice = $chavecesta[$i];
echo $i;

echo $_SESSION['cesta'][$indice][descricao];
echo $_SESSION['cesta'][$indice][preço];
}
?>
<html>
    <body>
        <table border="1" width="600">
            <form name="formpesquisaprodutovenda" method="post" action="../../Acoes/Venda/PesquisaProdutoVenda.php">
            <tr>
                <td>Informe o Produto:</td>
                <td><input type="text" name="nomep" size="20"></td>
                <td><input type="submit" value="pesquisar"></td>
            </tr>
            </form>
        </table>
    </body>
</html>

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...