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!
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!
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...
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>";
?>Quer fazer só uma input pegar 5 dados?
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!!
Deste jeito que você fez, funciona. Mas é limitado à 5 itens.
Se for para algo mais fluído, pode usar o exemplo que passei. Acabei de fazer uma alteraçãozinha nele ;-)
É 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?
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. ;-)
Como assim? Não entendi a sua duvida...