在数据库上保存表单

时间:2014-07-08 13:54:25

标签: php mysql sql

当我按下表单上的提交时,我遇到了这个小问题,所有保存都没问题!但是当我看到db而不是保存id / name / email / memb / date 这会将日期YEAR更改为id并通过电子邮件发送到名称...

这是PHP代码......

    <?php
if(isset($_POST['submit']))
{
//Conexión a la base de datos
$servidor = "localhost"; //Nombre del servidor
$usuario = "user"; //Nombre de usuario en tu servidor
$password = "pass"; //Contraseña del usuario
$base = "databse"; //Nombre de la BD
//conection:
$conn = mysqli_connect("$servidor","$usuario","$password","$base") or die("Error " . mysqli_error($conn));
if(! $conn )
{
die('Could not connect: ' . mysqli_error($conn));
}
if(! get_magic_quotes_gpc() )
{
$nombre = addslashes ($_POST['name']);
$correo_electronico = addslashes ($_POST['email']);
$celular = addslashes ($_POST['celular']);
$oficina = addslashes ($_POST['oficina']);
$placa = addslashes ($_POST['placa']);
$modelo = addslashes ($_POST['modelo']);
$color_vehiculo= addslashes ($_POST['colorvehiculo']);
$kilometraje = addslashes ($_POST['kilometraje']);
$tipo_de_tapiceria = addslashes ($_POST['tapiceria']);
$tipo_de_cita = addslashes ($_POST['cita']);
$comentario = addslashes ($_POST['message']);
$fecha_de_cita = addslashes ($_POST['datepicker']);
}
else
{
$nombre = $_POST['name'];
$correo_electronico= $_POST['email'];
$celular = $_POST['celular'];
$oficina= $_POST['oficina']; 
$placa= $_POST['placa'];
$modelo= $_POST['modelo'];
$color_vehiculo= $_POST['colorvehiculo'];
$kilometraje= $_POST['kilometraje'];
$tipo_de_tapiceria= $_POST['tapiceria'];
$tipo_de_cita= $_POST['cita'];
$fecha_de_cita= $_POST['datepicker'];
$comentario= $_POST['message'];
}
$sql = "INSERT INTO citas
"."(id,nombre,email,celular,oficina,placa,modelo,colorvehiculo,kilometraje,tapiceria,cita,comentario,fecha) ".
   "VALUES('$nombre','$correo_electronico','$celular','$oficina','$placa','$modelo','$color_vehiculo','$kilometraje','$tipo_de_tapiceria','$tipo_de_cita','$comentario','$fecha_de_cita', NOW())";
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('Could not enter data: ' . mysqli_error($conn));
}
echo "Entered data successfully\n";
mysqli_close($conn);
}
else
{
?>
数据库上的

ofc,ID是自动增量和主键

当我像这样更改查询时

(nombre,email,celular,oficina,placa,modelo,colorvehiculo,kilometraje,tapiceria,cita,comentario,fecha,id)

这样可以节省我所有的顺序,就像我想要但是我再次获取2014年(我在日期上的那一年),当我想要第二个注册时,我说重复输入'2014'为关键'初级'并且无法保存......

Thx for the Help

2 个答案:

答案 0 :(得分:1)

首先,请记住,事情会进入您放入的位置......您当前的代码有:

INSERT INTO Citas(id, nombre, etc.)
VALUES('$nombre', etc.)

您实际上是在尝试将人员姓名插入ID列!这不会起作用!

其次,请记住,在插入内容时,您需要插入相同数量的列...所以这样的东西不起作用:

INSERT INTO Citas(nombre, email, celular)
VALUES('john', 'asdf@asdf.com')

一定要非常仔细地计算!

最后,如果您自动增加,则无需在ID列中添加任何内容!自动增量会为您提供一个值。只需在INTO之后关闭ID,并确保VALUE列表中的项目数与INTO列表中的项目数相同。

我怀疑你的约会有问题。您似乎试图将$fecha_de_cita'NOW()插入到fecha列中。这可能会让事情失去意义。你需要选一个。但我的西班牙语也生锈了。 ; - )

答案 1 :(得分:0)

您实际上已将$nombre的值传递给id字段。您必须传递有效的ID,即使该字段是自动递增的(在这种情况下,它将是'DEFAULT')。 并删除查询末尾的NOW()

查询应该是:

INSERT INTO citas (id,nombre,email,celular,oficina,placa,modelo,colorvehiculo,kilometraje,tapiceria,cita,comentario,fecha) 
VALUES('DEFAULT', '$nombre','$correo_electronico','$celular','$oficina','$placa','$modelo','$color_vehiculo','$kilometraje','$tipo_de_tapiceria','$tipo_de_cita','$comentario','$fecha_de_cita')