Jump to content


Photo

Atribuir Valor A Sessions Com Loop


  • Faça o login para participar
8 replies to this topic

#1 Terrano

Terrano

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Não informado
  • Localidade:Rio de Janeiro

Posted 24/06/2008, 16:16

Ola,
Estou escrevendo uma pagina em que é feita uma leitura dos registros do banco e retorna seus ids onde na tela se monta um grid com 20 quadrados com informações diferentes, ao clicar no quadrado, abre o texto referente ao id dele, mas não quero passar o id pela url e sim via sessions, mas não estou conseguindo. a sessions só esta guardando o ultimo valor de id, gostaria se possivel de uma ajuda para dar uma luz a este problema pois já fiquei sem ideias.

abaixo segue o codigo que estou montando.

index.php

<?
// Destroi as sessões existentes
session_start();
session_unset();
session_destroy();

// Inicia nova sessão
session_start();

$sql = "SELECT * FROM banco WHERE pos = '1' AND tip = '2' AND ver !='n' ORDER BY id DESC";
	   $query = mysql_query($sql) or die();
while ($res=mysql_fetch_array($query)) {
?>
	   <div>
		 <div><a href="display.php" onclick="<? $_SESSION['id'] = $res['id']; ?>"><img src="<? if ($res['imagem'] != '') { echo "thumb.php?img=imgs/$res[pasta]/$res[imagem]\n";} else { ?> imgs/box/noim.jpg <?} ?>" border='0' align="bottom"></a></div>
		 <div><? echo $res['title']; ?></div>
		 <div>Local: <? echo $res['where']; ?></div>
	   </div>
<? } ?>
	 </div>

<?
function set_id($id) {
  $_SESSION['id'] = $id;
}
?>

display.php

<?
// Inicia sessão
session_start();

$id = $_SESSION['id'];
$sqlq = @mysql_query("SELECT * FROM banco WHERE id = '$id'");
$rows = @mysql_fetch_array($sqlq);
?>

  <div>
<!-- Inicio dos dados -->

	<h1><? echo "$rows[title]" ?></h1>

	<div><b><? echo $rows[texto]; ?></b></div>

<!-- Fim dos dados do Empreendimento -->
  </div>

com o codigo acima não importa em qual registro eu abra, só abre o mesmo porque a session só salva o ultimo valor passado no loop.

Edição feita por: Terrano, 25/06/2008, 21:44.


#2 Squall Robert

Squall Robert

    Mr. Squall - Mais Carne do que Osso (hihi)

  • Usuários
  • 507 posts
  • Sexo:Masculino
  • Localidade:Curitiba
  • Interesses:Php ... Php...Php

Posted 24/06/2008, 16:55

e ai man ...

vc tem que colocar em um array

$_SESSION['NOME_DA_SESSAO'][] = $ID;

coloca isso dentro do looping de registros

ai ele vai criar um vetor de ids na sessao
<?php

$squall = new Squall();

$squall->Ajudando("você");

$resultado = $squall->solucao();  ?>

#3 Terrano

Terrano

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Não informado
  • Localidade:Rio de Janeiro

Posted 25/06/2008, 12:17

ola squall,

tentei isso e não adiantou, pode até ser que eu esteja fazendo errado, mas mesmo assim obrigado pela ajuda.
se tiver como me dar uma ideia exemplificando pela parte do codigo que postei agradecerei muito.

#4 Squall Robert

Squall Robert

    Mr. Squall - Mais Carne do que Osso (hihi)

  • Usuários
  • 507 posts
  • Sexo:Masculino
  • Localidade:Curitiba
  • Interesses:Php ... Php...Php

Posted 25/06/2008, 14:31

man o que nao entendi ....

quando vc clicar em um item da lista...

ira abrir uma nova pagina

mas para esta pagina vc tem que passar alguma coisa ... pra poder identificar

nem que seja a sessão que vc quer pegar ...

se vc nao quer passar nada via get

passe via post

ok
<?php

$squall = new Squall();

$squall->Ajudando("você");

$resultado = $squall->solucao();  ?>

#5 Terrano

Terrano

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Não informado
  • Localidade:Rio de Janeiro

Posted 25/06/2008, 19:40

opa,

tentei novamente e nada. publiquei a pagina para você dar uma olhada.
http://www.zenitemud.com.br/avatars

na pagina, pode se ver que o while que coloco no codigo gera as imagens com link para display.php e seta sessions com o id do registro.
quando se clica na imagem para abrir display.php se vê que o registro aberto não foi o selecionado(isso se vc não selecionou o ultimo) e sim os dados do ultimo registro apresentado na tela. dai qeu vem meu problema, o while do geito que estou fazendo a atribuição da session esta deixando ela somente com o valor do ultimo registro apresentado.

ufa, é isso, acho que ao fim deste codigo vou ficar com uma úlcera heheh

Edição feita por: Terrano, 25/06/2008, 19:46.


#6 Squall Robert

Squall Robert

    Mr. Squall - Mais Carne do que Osso (hihi)

  • Usuários
  • 507 posts
  • Sexo:Masculino
  • Localidade:Curitiba
  • Interesses:Php ... Php...Php

Posted 26/06/2008, 10:33

man e o seguinte.....

se vc nao quer passar nada por GET

vc pode criar um vetor com os ids na sessao...


mas mesmo assim vc precisa mandar a posição do vetor pra poder pegar certo na outra parte

a forma mais correta e mandar por POST

criando campos hidden e tags form e no link fazer um submit de uma função java script alterando o valor

ok

mas é necessário que vc passe alguma coisa ou identifique a posição no vetor

ok
<?php

$squall = new Squall();

$squall->Ajudando("você");

$resultado = $squall->solucao();  ?>

#7 Terrano

Terrano

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Não informado
  • Localidade:Rio de Janeiro

Posted 26/06/2008, 10:47

opa,

vou tentar ver alguma coisa deste tipo, pq eu não estou usando as formas normais de html, só estou usando <div> e css para posicionamento e <a> para link ou mesmo alguma coisa em javascrip, mas se não conseguir fazer nada em relação a sessão vou ter que usar mesmo form, mesmo pq este código que estou escrevendo é uma revisão pois o antigo era com muitos <table> e <form> e estava tentando fazer este mais limpo.

valeu pela ajuda.

#8 Squall Robert

Squall Robert

    Mr. Squall - Mais Carne do que Osso (hihi)

  • Usuários
  • 507 posts
  • Sexo:Masculino
  • Localidade:Curitiba
  • Interesses:Php ... Php...Php

Posted 26/06/2008, 13:07

man.. vc pode usar form normal... em tableless

e a mesma coisa

nao muda nada o tabless vem pra substituir as table e não os form
<?php

$squall = new Squall();

$squall->Ajudando("você");

$resultado = $squall->solucao();  ?>

#9 thiago_2002

thiago_2002

    12 Horas

  • Usuários
  • 132 posts
  • Sexo:Não informado

Posted 26/06/2008, 16:30

olá entendi o que vc quer fazer, porem é impossivel, ou vc passa ?imagem=$nome imagem, ou ?idImagem=$idImagem...




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq