Jump to content


Photo

Inserir Valores Através De 2 Arrays


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

#1 Jefferson Fernandes

Jefferson Fernandes

    Turista

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

Posted 08/07/2009, 10:40

Tenho uma consulta que retorna os alunos cadastrados, com um campo text com o código do aluno e um campo text vazio para inserção da nota do aluno correspondente, como segue abaixo:

Consultar.php

echo "<input name=\" id_aluno[]\" type=\"text\" id=\" id_aluno\">\n";
echo "<input name=\" nota[]\" type=\"text\" id=\"nota \">\n";


Eu preciso que quando eu preencher todas as notas e clicar em enviar, que o script va inserindo o id_aluno e nota em tabelas diferentes, ou seja, cada id_aluno e nota em uma tabela.

Meu código esta assim:

Consulta.php

if(isset($_POST["nota"])){
// Faz loop pelo array do banco
foreach($_POST["nota"] as $nota_aluno {

$sql = "INSERT INTO notas_aluno ( id_aluno, nota)
VALUES ('$id_aluno, '$nota_aluno’)";
include("SQL.php");
} }


Ta inserindo a nota certa, porém o id do aluno eu não estou conseguindo pegar, pois até onde sei não tem como ter 2 condições no mesmo foreach. Alguem tem alguma solução pra isso?

Desde já agradeço

#2 Greg

Greg

    Ativo

  • Usuários
  • 302 posts
  • Sexo:Não informado
  • Localidade:Florianópolis

Posted 08/07/2009, 10:47

faz assim:

[codebox]

$i = 0;//contador, vai ser usado para referenciar o id do array do aluno

//aqui fica igual vc fez
if(isset($_POST["nota"])){
// Faz loop pelo array do banco
foreach($_POST["nota"] as $nota_aluno {

//aqui entra a referencia pro id_aluno
$id_aluno = $_POST['id_aluno'][$i];


$sql = "INSERT INTO notas_aluno ( id_aluno, nota)
VALUES ('$id_aluno, '$nota_aluno’)";
include("SQL.php");

//incremento o contador para na próxima vez pegar o id com o mesmo indice da nota do aluno em questão
$i++
} }

[/codebox]

#3 Jefferson Fernandes

Jefferson Fernandes

    Turista

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

Posted 08/07/2009, 12:05

faz assim:

$i = 0;//contador, vai ser usado para referenciar o id do array do aluno//aqui fica igual vc fezif(isset($_POST["nota"])){// Faz loop pelo array do bancoforeach($_POST["nota"] as $nota_aluno {//aqui entra a referencia pro id_aluno$id_aluno = $_POST['id_aluno'][$i];$sql = "INSERT INTO notas_aluno ( id_aluno, nota)VALUES ('$id_aluno, '$nota_aluno’)";include("SQL.php");//incremento o contador para na próxima vez pegar o id com o mesmo indice da nota do aluno em questão$i++} }



Deu certinho... vlw fera... obrigado mesmoooo

#4 Ferlouko x)

Ferlouko x)

    Normal

  • Usuários
  • 72 posts
  • Sexo:Masculino
  • Localidade:Guararapes
  • Interesses:PHP, OOP, DESIGN PATTERNS, mySQL, XML, (X)HTML, CSS, TABLELESS, PHP-GTK, JAVA, C++.

Posted 08/07/2009, 12:40

Mais simples ainda :
foreach($_POST['campo'] as $key => $value)

O próprio foreach já tem a sintaxe, mas isto são apenas meios, php tem mil e uma maneiras de se fazer 'x'. XD

[]'s


flws

Edição feita por: Ferlouko x), 08/07/2009, 12:41.

<?php
/**
* @author. . .Fernando Rodrigo Cardoso < ferlouko (at) gmail.com >
* @desc. . . .Desenv. PHP, (X)HTML, CSS, JS E AJAX, aprendiz JAVA, aprendiz C/C++ (...)
*/
?>

#5 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 08/07/2009, 15:35

Uma forma mais simples:

[codebox]
if(@$_POST) {
$array = array_combine($_POST['id_aluno'], $_POST['nota']);

foreach($array as $id_aluno => $nota) {
$sql .= "INSERT INTO notas_aluno (id_aluno, nota) VALUES ('".$id_aluno."', '".$nota."')";
}
include("SQL.php");
}
[/codebox]

Até mais ^_^

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap





1 user(s) are reading this topic

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

IPB Skin By Virteq