Php 如何检查表中是否已存在pin并重定向

Php 如何检查表中是否已存在pin并重定向,php,mysql,Php,Mysql,我想检查表中是否已经存在pin。如果存在,它应该回显消息并重定向到另一个页面 $result = mysql_query("SELECT * FROM pin WHERE Pin = '$Pin'"); $test = mysql_fetch_array($result); $test = array(); while ($row = mysql_fetch_array($result)) { $test[] = array_map('utf8_encode', $row); } if($

我想检查表中是否已经存在pin。如果存在,它应该回显消息并重定向到另一个页面

$result = mysql_query("SELECT * FROM pin WHERE Pin  = '$Pin'");
$test = mysql_fetch_array($result);

$test = array();
while ($row = mysql_fetch_array($result)) {
$test[] = array_map('utf8_encode', $row);
}

if($test["number_update"] == 1) { 
echo 'Pin Already in Use, Please Login';
header("location:compet_start.php");
} else {

mysql_query("UPDATE pin SET appid ='$num', number_update='1' WHERE Pin= '$Pin'")
        or die(mysql_error()); 

mysql_query("INSERT IGNORE INTO pinlog (TableName,pin,id,TIME_UPDATED) VALUES('Pin','$Pin','$num','$date')")
        or die(mysql_error()); 

header("location:compet_applicant.php?pin=$Pin");
}
}
}
?>  

请尝试以下代码:

$result = mysql_query("SELECT * FROM pin WHERE Pin  = '$Pin'");
$num = mysql_num_rows($result);
if ($num > 0) {
 echo "Pin exists";
}
else {
  echo "Pin does not exist";
}

如果您确定只能有一条记录,其中Pin='$Pin',则您可以:

$result = mysql_query("SELECT * FROM pin WHERE Pin  = '$Pin'");
if($test = mysql_fetch_array($result) && $test["number_update"] == 1) { 
echo 'Pin Already in Use, Please Login';
header("location:compet_start.php");
} else {
...
在您写的问题中,我想检查表中是否已经存在pin,所以如果您只需要检查它是否存在,您可以删除
&&$test[“number\u update”]==1
,并简化条件:

if($test = mysql_fetch_array($result)) { 
注释没有理由在
标题(“位置
之前回送,因为用户永远看不到
回送
编辑的文本

//echo 'Pin Already in Use, Please Login'; <-- this should be deleted
header("location:compet_start.php");

//echo'Pin已在使用,请登录';如果您只对行是否存在感兴趣,还可以查看mySQL的exists子查询。
它将返回真或假,并且更清楚,它也将比获取所有答案更快

 "SELECT EXISTS(SELECT * FROM pin WHERE Pin  = '$Pin')"
请看这里:

第二行和第三行的目的是什么?第三行只是取代了第二行,你的想法是什么?你有离题或被否决的问题的历史记录,并且有失去提问特权的风险。看来你是在试图让我们为你写申请表。从你的问题历史记录来看。你打算吗o也与我们分享您的工资?一般来说,这是一个合理的建议,但如果您要防止重复,“所有”答案都只是一个pin码。确实如此。这是关于使用EXISTS而不是常规查询进行检查的优点的更一般的建议。然而,布尔值也会比单个表行更短。