Php 如何检查表中是否已存在pin并重定向
我想检查表中是否已经存在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($
$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而不是常规查询进行检查的优点的更一般的建议。然而,布尔值也会比单个表行更短。