Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wesley Kovalski

Pegar dados do Foreach

Recommended Posts

Bom dia a todos!

Galera, estou guardando os dados de um array em uma variável, e estou usando o foreach para manipula-los...

 

Minha duvida é o seguinte, como que eu pego valor por valor, ou seja, supondo que a variável que guarda os arrays tem 5 valores:

 

Exemplo:

 

1, 2, 3, 4, 5

 

Como que eu pego o primeiro valor e guardo em uma variável...depois pego o segundo valor e guardo em outra variável, e assim por diante...

 

Pois depois eu irei fazer um insert no banco, e nesse insert vai constar assim:

 

INSERT INTO tabela (opcao1, opcao2, opcao3, opcao4, opcao5) VALUES ('$opcao1','$opcao2','$opcao3','$opcao4','$opcao5')

 

Alguém já fez algo assim?

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lucastas2, estou guardando valores de um formulário em uma variável:

 

O campo do formulário está assim:

 

<label>Nome da Opção:</label>
<input type="text" name="nomeOpc[]">
No PHP:
$nomeOpcao = $_POST['valor'];
$arrayNomes = $nomeOpcao;
foreach ($arrayNomes as $valor) {
// aqui é problema hehe, como eu irei pegar cada valor e guardar em uma variável, para depois fazer o insert?
}


Pois o insert vai estar assim:

 

INSERT INTO tabela (opcao1, opcao2, opcao3, opcao4, opcao5) VALUES ('$opcao1','$opcao2','$opcao3','$opcao4','$opcao5')

 

Ou seja, tenho que guardar o primeiro valor na variável ($opcao1) e o segundo valor na variável ($opcao2) e assim por diante...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu entendi!

 

Apenas utilizei FOR ao invés do Foreach! ;-)

 

O bom deste exemplo é que, pra cada item do array, será criado uma variável nova. Não será limitado a 5, 6 itens.

 

<?php

	$array = array('Valor Opção 01','Valor Opção 02','Valor Opção 03','Valor Opção 04','Valor opção 05');
	
	for ($i = 0; $i < count($array); $i++)
	{
		${"opcao".$i} = $array[$i];
	}
	
	echo $opcao0."<br>";
	echo $opcao1."<br>";
	echo $opcao2."<br>";
	echo $opcao3."<br>";
	echo $opcao4."<br>";
	
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado ae Maykel-ctba e Lucastas2

 

Consegui fazer: fiz assim:

 

$array = $arrayNomes;
for ($i = 0; $i < count($array); $i++)
{
if(($i == 0) AND ($array[$i] != '')){
$opcao0 = $array[$i];
}
if(($i == 1) AND ($array[$i] != '')){
$opcao1 = $array[$i];
}
if(($i == 2) AND ($array[$i] != '')){
$opcao2 = $array[$i];
}
if(($i == 3) AND ($array[$i] != '')){
$opcao3 = $array[$i];
}
if(($i == 4) AND ($array[$i] != '')){
$opcao4 = $array[$i];
}
}
Deu certo agora, valeu ae pessoal!!!
ObrigadooO!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

É que vai fazer um insert logo apos esse for:

 

Assim:

 

$array = $arrayNomes;
for ($i = 0; $i < count($array); $i++)
{
if(($i == 0) AND ($array[$i] != '')){
$opcao0 = $array[$i];
}
if(($i == 1) AND ($array[$i] != '')){
$opcao1 = $array[$i];
}
if(($i == 2) AND ($array[$i] != '')){
$opcao2 = $array[$i];
}
if(($i == 3) AND ($array[$i] != '')){
$opcao3 = $array[$i];
}
if(($i == 4) AND ($array[$i] != '')){
$opcao4 = $array[$i];
}
}
$cadastrar = mysql_query("INSERT INTO tabela (opcao1, opcao2, opcao3, opcao4, opcao5) VALUES ('$opcao0','$opcao1','$opcao2','$opcao3','$opcao4')")or die(mysql_error());
Caso o cliente quiser adicionar mais opcoes, como que eu irei aumentar os campos da tabela?
É uma enquete que estou fazendo, ou seja, ele vai escrever a pergunta e vai adicionando as opções de resposta para essa enquete...
entendeu?
Tem algum jeito de fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sempre tem um jeito, hehe!

 

Na verdade você construiu de um jeito limitado seu banco.

 

Se você criasse por exemplo duas tabelas:

 

Tabela Enquete

- id

- nome da enquete

- descrição

 

Tabela Perguntas

- id pergunta

- id enquete

- pergunta

 

Tabela Resposta

- id resposta

- resposta

 

Você conseguiria fazer algo mais flexível desta maneira. Esse seria o primeiro passo. ;-)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.