0

我正在为我的网站创建一个注册表单系统。每张登记表都有一个 ID 号。当用户注册时,它会将用户名和 ID 号发送到数据库。但是,我想停止重复条目,以便同一用户只能注册一次活动。我不能在 SQL 查询中使用 WHERE 语句,我只是想知道解决这个问题的最佳方法是什么。我不能使用主键或唯一键,因为它们只能注册一个活动,或者只能注册一个活动。提前致谢。

这是页面的代码

<?php
session_start();

$user = $_POST['username'];
$id = $_POST['id'];

if(empty($user) == FALSE )
{

$con=mysqli_connect("localhost","emuas","flgdls","EMUAS_signUp");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$sql="INSERT INTO SIGN_UP_TEST (EventID, User, Comments)
VALUES
('$_POST[id]','$_SESSION[username]','$_POST[comments]')";

if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }
  header("Location: {$_SERVER['HTTP_REFERER']}");
  }
  else
  {
  header("Location: {$_SERVER['HTTP_REFERER']}");
  }
?>
4

2 回答 2

0

如果您使用复合主键(id 和用户),则用户可以注册多个事件,但不能注册两次相同的事件。

主键(id,用户)

于 2013-05-23T17:09:32.677 回答
0

您可以添加此唯一键。它将使用户只能为每个活动注册一次。

alter table SIGN_UP_TEST add unique index(EventID, User);

于 2013-05-23T17:02:59.630 回答