Jump to content


Photo

Tratar Array E Salvar No Banco


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

#1 Fábio Web Arts

Fábio Web Arts

    Web IN Arts

  • Usuários
  • 299 posts
  • Sexo:Masculino
  • Localidade:No Saco De Magé
  • Interesses:Tudo que for da área de Informática

Posted 23/12/2010, 13:48

galera seguinte fiz um script para gerar provas ae quando eu mando o form ele me manda em forma de array...

eu queria receber esse array e jogar em uma tabela que e assim:

id_prova | id_pergunta | id_resposta | nome | loja | cod_cli


se tiver 3 questoes o campo nome repetira 3 vezes so o que mudara e o id_pergunta e o id_resposta

que eu obtenho assim

//posts
$loja = $_POST['loja'];
$nome = $_POST['nome'];
$cod = $_POST['cod_cli'];
$prova = $_POST['titulo'];

//foreach perguntas
foreach ($_POST['perg'] as $key => $value) {
echo "pergunta:$key; valor: $value<br />\n";
}
//foreach respostas
foreach ($_POST['resp'] as $key1 => $value1){
echo "resp:$key1; valor: $value1<br />\n";
}


como eu faria para tratar esses dados e colocar em um banco lembrando que se eu roda do geito que ta ae exibe assim:

pergunta:1; valor: 17
pergunta:2; valor: 18
pergunta:3; valor: 19
pergunta:4; valor: 20
pergunta:5; valor: 21
resp:1; valor: 6
resp:2; valor: 8
resp:3; valor: 10
resp:4; valor: 9
resp:5; valor: 11

#2 PHP-Geek

PHP-Geek

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP - Brasil

Posted 23/12/2010, 14:43

Se a relação entre as perguntas e respostas se der de acordo com o índice da array pode se usar a função 'array_key_exists' como segue, explique melhor qual a relação após o post entre a array de perguntas e respostas.

foreach ($_POST['perg'] as $key => $value) {
	if (array_key_exists($key,$_POST['resp'])) {
		echo "pergunta:$key; valor_perg: $value; valor_resp: ".$_POST['resp'][$key]."<br />\n";
	}
}

[]s

#3 Fábio Web Arts

Fábio Web Arts

    Web IN Arts

  • Usuários
  • 299 posts
  • Sexo:Masculino
  • Localidade:No Saco De Magé
  • Interesses:Tudo que for da área de Informática

Posted 23/12/2010, 19:49

pow podem colocar como resolvido;

eu tinha resolvido antes de ve o seu post!! mais tbm e muito util... vlw mesmo funcionou perfeitamente tbm... a minha solucao foi essa:


$count = count($_POST['perg']);
$i=0;
while($i<$count){
$i++;
echo 'Prova: '.$prova.' - Perg'.$i.': '.$_POST['perg'][$i].'- Resp:'.$i.' '.$_POST['resp'][$i].' - Loja: '.$loja.' - Nome: '.$nome.' - Codigo: '.$cod.'<br />';
}



ae fiquei agora so com uma duvida...

como que eu faco para checar se um dos posts esta vazio?

eu fiz assim mais nao esta funcionando:


foreach($_POST['resp'] as $key => $value){
if(!IsSet($_POST['resp'][$key])){
echo "vazio";
exit;
}
}


vlw ae consegui fazer:


$msg_erro = '<script>alert(\'Por favor preencha toda a prova!\');history.back();</script>';

if(empty($_POST['resp'])){
echo $msg_erro;
exit;

}

$count_r = count($_POST['resp']);
$count_p = count($_POST['perg']);
while($count_r<$count_p){
echo $msg_erro;
exit;
}






1 user(s) are reading this topic

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

IPB Skin By Virteq