Php 逻辑帮助

Php 逻辑帮助,php,mysql,sql,Php,Mysql,Sql,我在数据库中创建了一个唯一的字段。考虑相册名称是唯一的。我已经成功地添加了限制条件,若用户尝试添加其他同名相册,他将收到错误消息,该记录已经存在。因此,用户不能添加任何其他同名记录 但现在我有一个问题,如果数据库中有3条记录,名称为a,b,c.,并且用户正在更新任何字段,那么他就可以将记录b更新为a的名称,所以它们将是数据库中的两条记录,名称为a我想创造它独特的。为此,我正在使用脚本 if($name!="") { $sql = "select a_name from t_a_list wh

我在数据库中创建了一个唯一的字段。考虑相册名称是唯一的。我已经成功地添加了限制条件,若用户尝试添加其他同名相册,他将收到错误消息,该记录已经存在。因此,用户不能添加任何其他同名记录

但现在我有一个问题,如果数据库中有3条记录,名称为
a,b,c.
,并且用户正在更新任何字段,那么他就可以将记录
b
更新为
a
的名称,所以它们将是数据库中的两条记录,名称为
a
我想创造它独特的。为此,我正在使用脚本

if($name!="") {
  $sql = "select a_name from t_a_list where a_name = '$name'";
  $result = mysql_query($sql);

  if(mysql_num_rows($result) != 0) {
    $msg = "<font color=red>Record Not Saved. Album already Exist!</font>";
  }
} else {
  $msg = "<font color=red>Enter Name of Album!</font>";
}

if($msg=="") {
//Update Query
}
if($name!=“”){
$sql=“从t\u a\u列表中选择一个\u名称,其中a\u名称='$name';
$result=mysql\u查询($sql);
如果(mysql_num_rows($result)!=0){
$msg=“记录未保存。相册已存在!”;
}
}否则{
$msg=“输入相册名称!”;
}
如果($msg==“”){
//更新查询
}

但我有一个问题,每次更新页面时,我都需要为相册选择不同的名称。因为它将显示相册存在消息。有时,我可能想更改除专辑名称以外的其他信息,如发行年份、总曲目。但使用这个脚本,如果我想更新字段的rst,我需要先更改唱片集名称。请帮我解决这个问题。因此,相册名称可能不会在数据库中重复,我可以更新除名称以外的其他信息。

您需要在数据库级别强制实施唯一性约束。这样,数据库将拒绝任何创建具有相同键的记录的操作

对现有表执行此操作的一种方法是使用
altertable
命令:

 ALTER TABLE myalbums ADD UNIQUE (albumname);

您可以将oldname保存在变量中,并在更新时首先检查
是否($name!=$oldname){…
。 if($name!=$oldname) { ... 这样,您将不会更新名称,除非它已更改,并且将对其他字段进行更新

$oldname=正在编辑的相册的名称
....
如果($name!=$oldname){
如果($name!=“”){
$sql=“从t\u a\u列表中选择一个\u名称,其中a\u名称='$name';
$result=mysql\u查询($sql);
如果(mysql_num_rows($result)!=0){
$msg=“记录未保存。相册已存在!”;
}
}否则{
$msg=“输入相册名称!”;
}
如果($msg==“”){
//更新查询
}
}
如果($description!=“”){
....
}
如果($location!=“”){
...
}
...

aditii,字体标记早已被弃用……请尝试将span标记与CSS ID和类一起使用。 $oldname = THE NAME OF THE ALBUM BEING EDITED .... if($name!=$oldname) { if($name!="") { $sql = "select a_name from t_a_list where a_name = '$name'"; $result = mysql_query($sql); if(mysql_num_rows($result) != 0) { $msg = "Record Not Saved. Album already Exist!"; } } else { $msg = "Enter Name of Album!"; } if($msg=="") { //Update Query } } if($description!="") { .... } if($location!="") { ... } ...