Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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){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/<?
session_start();
$code = $_GET['code'];
$image = $_GET['image'];
$cesta = array();
$_SESSION["code"] = "$code";
$_SESSION["image"] = "$image";
?><?
session_start();
echo $_SESSION = $code;?><br />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
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 />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!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
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 />Obrigado!
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
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;
?>Obrigado!
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!
$_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;
//...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 />";
}
?>Obrigado Beraldo e Diego. http://forum.imasters.com.br/public/style_emoticons/default/clap.gif
Fala, inforzyz!
No último bloco de códigos, você fez errado. Veja:
Faça: