Às vezes, precisamos inserir vários registros num banco de
dados numa operação só (por exemplo, um cadastro de alunos, de candidatos
etc.). Em vez de repetir a tediosa tarefa de recarregar o mesmo formulário várias
vezes, neste tutorial vamos conhecer uma forma simples de definir, antes de
carregar o formulário de cadastros, quantos registros vamos inserir e então já
carregar o formulário “pronto”.
O primeiro passo é criar um formulário prévio bem simples,
para definirmos quantos registros vamos inserir; o código segue abaixo:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
</head>
<body>
<p>Escolha
quantos registros serão inseridos:</p>
<form name="form1"
method="post" action=" form_dinam.php ">
<label>
<input
name="cx" type="text" id="cx"
size="10">
</label>
<label>
<input type="submit"
name="Submit" value="Submit">
</label>
</form>
<p> </p>
</body>
</html>
Observe que o formulário acima envia informações a uma 2ª
página, a "form_dinam.php", que vamos criar no próximo passo.
Agora copie o código da página form_dinam.php, substituindo
os 3 “X” abaixo pelos seus dados:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<html>
<head>
<title>teste formulario dinamico</title>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
$conecta = mysql_connect("XXX", "XXX",
"XXX") or print (mysql_error());
mysql_select_db("mural", $conecta) or
die(mysql_error());
$hd=$_POST['hd'];
if ($hd) {
$my_matricula = $_POST['matricula'];
$my_nome =
$_POST['nome'];
$tamanho =
count($my_matricula)-1 ;
for ($f=0 ;
$f <= $tamanho ; $f++) {
$sql =
mysql_query("insert into XXX(matricula,nome) VALUES
(\"".$my_matricula[$f]."\",\"".$my_nome[$f]."\")")
or die(mysql_error());
}
if($sql){
echo
($tamanho+1)." registros incluidos" ;
}
} else {
$numcaixas=
$_POST['cx'];
//define(NUM_CAIXAS,3) ;
echo "<form
name=\"form1\" method=\"post\"
action=\"\">" ;
echo "<pre>"
;
for ($f=1 ; $f <= $numcaixas ; $f++) {
echo "Matricula$f : " ;
echo
"<input type=\"text\" name=\"matricula[]\"><br>";
echo "Nome$f : " ;
echo "<input type=\"text\"
name=\"nome[]\"><br><br>" ;
}
echo
"</pre>" ;
echo
" <input name=\"hd\"
type=\"hidden\" value=\"1\">" ;
echo
" <input
type=\"submit\" name=\"Submit\" value=\"Submit\">"
;
echo
"</form>" ;
}
?>
</body>
</html>
O código acima insere 2 campos: “matricula” e “nome” de
alunos, como exemplo. Seu formulário dinâmico já estará funcionando
corretamente, inclusive informando quantos registros foram inseridos.
Fonte: PHP e MySQL – Guia avançado, Claudio Adonai Muto, ed.
Brasport, pgs. 109/110.