inforsis 1 Denunciar post Postado Janeiro 22, 2008 Bom Dia a todos! Então estou com um probleminha, acho que não muito complicado... Estou montando um sistema de cesta de pedidos. Os dados vêm do Banco de Dados. <? $sql = "SELECT * FROM `fullpot_prod` WHERE code = '$code' and status='1'"; $resultado = mysql_query($sql) or die('erro<br>'.$sql.'<br>'.mysql_error()); $num_linhas = mysql_num_rows($resultado); ?> <?php if ($num_linhas >0){ //faz um loop para listar os produtos for ($i = 0; $i < $num_linhas; $i++) { $produto = mysql_fetch_array($resultado); $item = $produto["item"]; $code = $produto["code"]; $description = $produto["description"]; $price = $produto["price"]; $image = $produto["image"]; $status = $produto["status"]; ?> <div id="subpagina"> <img id="img_produto" src="http://www.fullpotofflowers.com/2.0/imagens/products/<? echo $produto["image"] ?>" alt="<? echo $produto["item"];?>" width="300" height="300" border="1" /> <p><strong>Code:</strong> <span><? echo $produto["code"]; ?></span><br /> <strong>Product:</strong> <span><? echo $produto["item"]; ?></span><br /> <strong>Price:</strong> <span><? if ($price == "0") { echo "";} else echo $produto["price"]; ?></span><br /> <strong>Descrição:</strong> <span><? echo $produto["description"]; ?></span></p><br /> <form action="cart3.php?code=<? echo $produto["code"]; ?>" method="get"> <input type='hidden' name='code' value='<? echo $produto["code"]; ?>' /> <input type='hidden' name='image' value='<? echo $produto["image"]; ?>' /> <input name="add" type="submit" id="add" value="Add To Cart" /> </form> <?php } } if ($num_linhas < 1){ echo "<br /><p class=\"center\">No records were located searching for <strong>$code</strong></p>"; } ?> Envio por um formulário usasndo um hidden, crio uma session e adiciono o item selecionado. <? session_start(); $code = $_GET['code']; $image = $_GET['image']; $cesta = array(); $_SESSION["code"] = "$code"; $_SESSION["image"] = "$image"; ?> Depois exibo o item em uma outra página: <? session_start(); echo $_SESSION = $code;?><br /> <img src="http://www.fullpotofflowers.com/2.0/imagens/products/<?php echo $_SESSION = $image; ?>"> O Problema Então da forma que coloquei acima, eu apenas guarda um unico item na sessão, porém o usuário deve permanecer no sistema e selecionar novaos itens e os itens anteriores ficam na sessão. Bom para isso, devo usar array. Só que não estou sabendo como proceder para pegar estes dados e colocar em um array e exibi-los. Alguém pode ma auxiliar? PS: Li alguns tópicos na busca, encontrei este post do GuttoSP, mais não sonsegui resultado. Obrigado! ATé Mais. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 22, 2008 Fala, inforzyz! Crie $_SESSION['code'] como um array. Faça assim: $_SESSION["code"][] = "$code"; $_SESSION["image"][] = "$image"; No último bloco de códigos, você fez errado. Veja: echo $_SESSION = $code; Faça: echo $_SESSION['code']; Compartilhar este post Link para o post Compartilhar em outros sites
inforsis 1 Denunciar post Postado Janeiro 22, 2008 Então modifiquei, aparentemente ficou correto... Poderiam me auxiliar também na exibição de todos os itens que constam na seção. <? session_start(); echo $_SESSION['code'];?><br /> <img src="http://www.fullpotofflowers.com/2.0/imagens/products/<?php echo $_SESSION['image']; ?>"> Obrigado, ate mais! Compartilhar este post Link para o post Compartilhar em outros sites
jeronymo 0 Denunciar post Postado Janeiro 22, 2008 Salve inforsis! bem, considerando que você está usando chaves numéricas no array ([0], [1], etc), só fazer um loop para todos os itens: for($i = 0; $i < count($_SESSION["code"]); $i++){ print $_SESSION["code"][$i]; } até mais! Compartilhar este post Link para o post Compartilhar em outros sites
leonardonobre 0 Denunciar post Postado Janeiro 22, 2008 Boa tarde a todos, um tutorial simples esta presente no link http://www.phpriot.com/articles/intro-php-sessions/7 1. Armazena a array na Session 2. foreach para pegar os valores e apresentar. Espero ter ajudado, Léo Compartilhar este post Link para o post Compartilhar em outros sites
inforsis 1 Denunciar post Postado Janeiro 22, 2008 leonardonobre, valeu pela dica de link. Vou dar uma olhada. Porém acho que seguindo a linha de raciiocinio que comecei é mais facil. Com o auxilio de vocês... Então Diego, eu coloquei da maneira que você falou para visualizar (na lógica, esta tudo correto.) Só nao entendi porque me foi retornado o numero de registros e não as informacoes (por exemplo, me retornou o numero "4"). <? session_start(); $code = $_GET['code']; $image = $_GET['image']; $_SESSION["code"][0] = "$code"; $_SESSION["image"][0] = "$image"; ?> <? session_start(); for($i = 0; $i < count($_SESSION["code"]); $i++){ echo $_SESSION["code"][$i];?><br /> <img src="http://www.fullpotofflowers.com/2.0/imagens/products/<?php echo $_SESSION["image"][$i]; }?>"> Alguém, pode me orientar? Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 22, 2008 Mas não é um número que fica armazenado em $_SESSION['code']? :unsure: No primeiro bloco de código, você definiu o índice zero. Isso fará com que, sempre que o usuário selecionar um produto, ele seja inserido no primeiro índice, sobrescrevendo o já existente. Não defina números. Faça como mostrei antes: $_SESSION['code'] [] = $code; Dessa forma, o novo produto sempre será inserido num novo índice. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
inforsis 1 Denunciar post Postado Janeiro 23, 2008 Então Beraldo sem definir valor, me retorna o erro: Fatal error: [] operator not supported for strings in /home/content/f/u/l/fullpot/html/new/cart3.php on line 5 Eu não preciso de um for com um indice para pegar esses valores e suas posições? Bom já tentei mais não acertei... O segundo bloco do código esta assim: <? session_start(); $code = $_GET['code']; $image = $_GET['image']; $_SESSION['code'][] = $code; $_SESSION['image'][] = $image; ?> Pode me orientar? Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
jeronymo 0 Denunciar post Postado Janeiro 23, 2008 inforsis, sobre o seu último post de ontem... você fechou a session e testou novamente? pra acontecer aquilo, é porque os dados da session ainda estavam guaradas em string, e não em array sobre esse erro, o beraldo tá certo, vai guardar sempre no mesmo índice assim... mas se desse jeito dá erro, uma alternativa é colocar o índice dinamicamente, com a ajuda da função count(): $_SESSION['code'][count($_SESSION['code'])] = $code; até mais! Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 23, 2008 $_SESSION['code'] tem que ser um array. Para ter certeza disso, faça isto: if (!isset($_SESSION['code']) || !is_array($_SESSION['code'])) { $_SESSION['code'] = array(); } $_SESSION['code'][] = $code; //... Compartilhar este post Link para o post Compartilhar em outros sites
inforsis 1 Denunciar post Postado Janeiro 23, 2008 Então Beraldo, obrigado pela atenção. Bom durante o dia o Diego (jeronymo) me auxiliou bastante essa dica que ele deu foi excencial... depois disso tive alguns outros problemas meio sem sentido... Mais no final ele me ajudou mais uma vez a resolver o problema. Assim ficaram os blocos de códigos: <? session_start(); $code = $_GET['code']; $image = $_GET['image']; $_SESSION['item'][] = $code."-".$image; ?> <? session_start(); for($i = 0; $i < sizeof($_SESSION); $i++){ echo $_SESSION['item'][$i]; echo "<br />"; } ?> Isso resolveu o problema que citei no primeiro post. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Obrigado Beraldo e Diego. http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Compartilhar este post Link para o post Compartilhar em outros sites