我正在使用php + postgres尝试制作网络应用。我的问题是当我尝试在表格中插入数据时,因为它不会死掉#34;但也不会插入任何内容。
这是我的观点,一切正常。
<form action="../../Controlador/agregarAlumno.php" method="post">
<label for="nombre">Nombre:</label>
<input id="nombre" type="text" name="nombre" placeholder="Nombre Coordinador" required="true" />
<label for="email">Rol:</label>
<input id="email" type="text" name="rol" placeholder="Rol USM" required="true" />
<label for="nombre">Rut:</label>
<input id="nombre" type="text" name="rut" placeholder="Rut" required="true" />
<label for="email">Área:</label>
<select name="area">
<option value="">Elige un área</option>
<?php
foreach($areas as $area)
{
echo '<option value="'. $area[0] .'">'. $area[1] .'</option>';
}
?>
</select>
<label for="nombre">Teléfono:</label>
<input id="nombre" type="text" name="telefono" placeholder="Ej: +56988182965" required="true" />
<label for="email">Talla Polera:</label>
<input id="email" type="text" name="talla" placeholder="Ej: S, M, L" required="" />
<label for="nombre">Carrera:</label>
<select name="carrera">
<option value="">Elige una carrera</option>
<?php
foreach($carreras as $carrera)
{
echo '<option value="'. $carrera[0] .'">'. $carrera[2] .'</option>';
}
?>
</select>
<label for="email">Correo Electrónico</label>
<input id="email" type="mail" name="correo" placeholder="Ejemplo@ejemplo.com" required="true" />
<label for="email">Contraseña</label>
<input id="email" type="text" name="contraseña" required="true" />
<input id="submit" type="submit" name="submit" value="Enviar" />
</form>
这是agregarAlumno.php,这里的想法是插入一个用户,然后使其成为协调员,简单来说,我试图用一个视图进行2次插入。
<?php
include("conexion.php");
include("../Modelo/alumno.php");
include("../Modelo/area.php");
include("../Modelo/coordinadoresArea.php");
$al = new alumno();
$alumnos = $al->obtenerAlumnos();
foreach ($alumnos as $alumno)
{
if($_POST[rol] != $alumno[0] )
{
$al->agregarAlumno($_POST[nombre],$_POST[rol],$_POST[rut],$_POST[telefono],$_POST[talla],$_POST[carrera],$_POST[correo],$_POST[contraseña]);
}
}
$cor = new coordinadoresArea();
$cor->agregarCoordinadorArea($_POST[rol],$_POST[area]);
//header("Location: ../Vista/Coordinadores Area/coordinadoresArea.php");
?>
这是函数agregarAlumno:
function agregarAlumno($nombre,$rol,$rut,$telefono,$talla,$id_carrera,$correo,$contraseña)
{
include("conexion.php");
$query = "INSERT INTO alumno VALUES('".$rol."','".$id_carrera."','".$nombre."','".$rut."','".$correo."','".$contraseña."','".$telefono."','".$talla."')";
return $result = pg_query($query);
pg_free_result($result);
pg_close($db);
}
这是函数agregarCoordinador:
function agregarCoordinadorArea($rol,$id_area)
{
include("conexion.php");
echo "Rol:",$rol," ","Id Area:",$id_area;
$query = "INSERT INTO coordinador_area VALUES('".$rol."','".$id_area."')";
$result = pg_query($query);
pg_free_result($result);
// Closing connection
pg_close($db);
}
最后这是表coordinador_area:
CREATE TABLE coordinador_area
(
id_coordinador_area serial NOT NULL,
rol character varying(20) NOT NULL,
id_area integer NOT NULL,
CONSTRAINT coordinador_area_pkey PRIMARY KEY (id_coordinador_area),
CONSTRAINT coordinador_area_id_area_fkey FOREIGN KEY (id_area)
REFERENCES area (id_area) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT coordinador_area_rol_fkey FOREIGN KEY (rol)
REFERENCES alumno (rol) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
对不起,如果我提出一个很长的问题,但我已经尝试过所有事情(我知道)。
答案 0 :(得分:0)
您的所有POST参数都必须使用单引号,例如:$_POST['nombre']
,我看到您有$_POST[nombre]
另一个问题是变量或参数名称不得包含ñ
$al->agregarAlumno($_POST['nombre'],$_POST['rol'],$_POST['rut'],$_POST['telefono'],$_POST['talla'],$_POST['carrera'],$_POST['correo'],$_POST['contrasenia']);
希望它适合你:)