嗯,我正在使用php + postgres試圖製作一個web應用程序。我的問題是當我嘗試在表中插入數據,因爲它不「死」,但也不插入任何東西。我不能用postgres + php插入數據
這是我的視圖,在這裏都可以正常工作。
<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="[email protected]" 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
)
我對不起如果我提出一個很長的問題,但我已經嘗試了一切(我知道)。
YOu正在3列的表中插入2個值,沒有指定這2列.'INSERT INTO coordinador_area(rol,id_area)VALUES ...' – Mihai
「COMMIT」缺失..在此之前,世界其他地方_never_不知道你插入了什麼! –
你所有的POST參數都必須用單引號,例如:'$ _POST ['nombre']',我看你有'$ _POST [nombre]'現在 – martinezjc