在添加新的邮政编码之前,尝试查看邮政编码是否已经存在:
对于一个空的查询,我得到的答案是"否"对于搜索字段中的anythin,即使邮政编码不存在,我也会得到肯定。
$search=$_POST['search'];
$result = mysql_query("SELECT zipcodes FROM zipcodes WHERE zipcodes='$search'");
if ($result = $search) {
$search = "yes";
}else{
$search = "no";
}
有什么想法吗?非常感谢。
您在这行使用了一个等号:
if ($result = $search)
它将$result
分配给$search
,而不是比较相等,然后总是返回true。使用==
。
此外,请听取吴宇森关于使用COUNT
或mysql_num_rows
:的建议
$search = $_POST['search'];
$result = mysql_query("SELECT zipcodes FROM zipcodes WHERE zipcodes='$search'");
if (mysql_num_rows($result) > 0) {
$search = "yes";
}else{
$search = "no";
}
尝试使用COUNT
SELECT COUNT(*) FROM `zipcodes` WHERE` zipcodes = 'value'
如果邮政编码不存在,它将返回0。
在PHP中,您也可以执行if (mysql_num_rows($result) > 0)
echo (mysql_errno($db_object) == 1062) ? 'duplicate' : 'unique';
尝试更改此行
$result = mysql_query("SELECT zipcodes FROM zipcodes WHERE zipcodes='$search'");
至
$result = mysql_query("SELECT zipcodes FROM zipcodes WHERE zipcodes='"$search'"");
$search变量不会在单引号中打印其值
使用
$search=$_POST['search'];
$result = mysql_query("SELECT zipcodes FROM zipcodes WHERE zipcodes='$search'");
if (mysql_num_rows($result) > 0) {
$search = "yes";
}else{
$search = "no";
}