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

ajuda com esse código


wmo.btu

Pergunta

while($num = mysql_fetch_array($query))

{

$_SESSION["retNome"] = $num['nome'];

$_SESSION["retNomeEspecialidade"] = $num['nomeEspecialidade'];

$_SESSION["retEndereco"] = $num['endereco'];

$_SESSION["retBairro"] = $num['bairro'];

$_SESSION["retNomeCidade"] = $num['nomeCidade'];

$_SESSION["retCep"] = $num['cep'];

$_SESSION["retTelefone"] = $num['telefone'];

}

header("Location: guia.php");

Galera gostaria de armazenar os dados retornados do select e enviar para outra página, porém colocando em $_SESSION ele imprime na tela apenas 1 registro e testando na própria tela da echo o laço funciona e exibe todos os dados retornados.

Alguém poderia me ajudar, lembrando que o sql funciona normal.

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Então cara, pra você fazer isso você precisa de vetor.

Por que funciona na mesma página então? Porque você vai dando ECHO conforme a query vai andando os registros, entendeu?

Por exemplo, a query está com o registro de ID = 1, você vai lá e dá ECHO nas informações daquele registro. Aí o while passa pro próximo. Faz a mesma coisa, e você vai e dá ECHO. E assim por diante.

Só que como você toda hora SUBSTITUI o valor na $_SESSION (ao fazer $_SESSION["..."] = $variavel dentro de um while, ela vai em todo loop receber um valor novo), a hora que você recupera o valor dela fora do while, ele vai ser o último valor da query, entendeu? porque ele percorreu tudo mas você foi substituindo os valores, até o último registro. Então você tem que usar vetor e uma variável que servirá de índice (que começaria com 0, e a cada loop você aumenta o valor dela - $var++ - entendeu?)

Abraços!

Link para o comentário
Compartilhar em outros sites

  • 0

while($num = mysql_fetch_array($query))
{
$_SESSION["retNome"][] = $num['nome'];
$_SESSION["retNomeEspecialidade"][] = $num['nomeEspecialidade'];
$_SESSION["retEndereco"][] = $num['endereco'];
$_SESSION["retBairro"][] = $num['bairro'];
$_SESSION["retNomeCidade"][] = $num['nomeCidade'];
$_SESSION["retCep"][] = $num['cep'];
$_SESSION["retTelefone"][] = $num['telefone'];
}

apenas acrescente afrente de cada session um []

isso resolve seu problema

agora para chamar cada uma é assim

echo $_SESSION["retTelefone"][0];

echo $_SESSION["retTelefone"][1];

echo $_SESSION["retTelefone"][2];

Link para o comentário
Compartilhar em outros sites

  • 0

Vithor seria isso:

while($num = mysql_fetch_array($query))

{

$x=0;

$vetor["retNome"][$x] = $num['nome'];

$vetor["retEspecialidade"][$x] = $num['nomeEspecialidade'];

$vetor["retEndereco"][$x] = $num['endereco'];

$vetor["retBairro"][$x] = $num['bairro'];

$vetor["retCidade"][$x] = $num['nomeCidade'];

$vetor["retNome"][$x] = $num['cep'];

$vetor["retTelefone"][$x] = $num['telefone'];

$x++;

}

header("Location: guia.php");

Valeu pela ajuda!

Cardon acho q entendi o q você falou, esse valor poderei colocar com uma variavel tipo?

$x = 0;

$_SESSION["retNome"][$x] = $num['nome'];

$x++;

Seria isso?

Valeu

Link para o comentário
Compartilhar em outros sites

  • 0

Pode ser, mas não é necessário

Apenas os colchetes já resolve, o php entende que deve sempre acrescentar um na sequência, hehehe

mas as duas formas estão certas na hora de criar as sessions.

Mas na hora de chamar elas deve ser feito um loop e numerar o array.

$x = 0;

echo $_SESSION["retNome"][$x];

$x++;

Falow

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

  • 0

Valeu Cardon

Vou tentar e posto o resultado..

ATé+

Cardon, aproveitando q você tem respondido e dado atenção as minhas perguntas gostaria de saber sobre conexão com sql server 2008, vou ter q conectar a base q temos aqui na empresa, bom minha dúvida seria: _connect, _select_db, _fetch_array.

porque se usar o MYSQL usaria exemplo mysql_connect já no SQL SERVER não sei o q usar.

Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, eu já usei o SQL Server 2005. Vê se funciona no 2008 também:

é só você trocar os comandos

"mysql_" por "mssql_". Ou seja: mssql_connect, mssql_select_db, mssql_fetch_array, etc.

Vê se funciona. E falando no negócio dos vetores de $_SESSION['nome'][]...

Beleza, o PHP adiciona um por um automaticamente. Mas e na hora de recuperar? Você não tem como saber QUANTOS itens tem, certo? Fazer isso aqui:

$x = 0;

while(isset($_SESSION['nome'][$x])) {
  // COMANDOS
  $x++;
}

funciona para recuperar todos os itens, certo?

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...