【发布时间】:2015-04-29 02:51:14
【问题描述】:
我的 php 代码有问题。我在这里所做的是一个表单,它被发送到该文件并将其输入数据库。如果电子邮件已经在帐户的数据库中,则它不会进入数据库。我遇到的麻烦是当该电子邮件已经在数据库中时,我想打印出“并且该电子邮件的帐户已经创建”,并在将电子邮件插入数据库时打印出“帐户已创建”。它的问题是无论我在创建新帐户时输入什么电子邮件,即使我输入一个新数据库的电子邮件,它也会运行 if 语句。为了清楚起见,如果是新电子邮件,数据库将输入电子邮件,但是我的代码将自动使用 if 语句。
这是我在 php 中的代码:
$fName=$_POST['fName'];
$lName=$_POST['lName'];
$email=$_POST['email'];
$password=$_POST['password'];
$state=$_POST['state'];
$zip=$_POST['zip'];
$address1=$_POST['address1'];
Print"<h3>";
Print"<a href ='projectHome.php'>Store Home </a>";
Print"<a href ='createAccount.php'>Create an Account </a>";
Print"<a href ='login.php'>Login </a>";
Print"<a href='BrowseCategories.php'>Browse Categories </a>";
Print"<a href='search.php'>Search for a book </a>";
Print"<a href='orders.php'>Orders </a>";
Print"<a href ='contactUs.php'>Contact Us </a>";
Print"<a href ='index.html'>Home(index) </a>";
Print"</h3>";
$query="insert into Customers(Email,Passwd,FirstName,LastName,Address1,ZipCode,State) VALUES ('$email','$password','$fName','$lName','$address1',$zip,'$state')";
mysql_query($query);
$query="select * from Customers where Email = '$email'";
$result=mysql_query($query);
$numOfRows=mysql_numrows($result);
if($numOfRows==1)
{
print"An account with that email is already created..<a href ='createAccount.php'>Please enter a new account email.</a>";
print"<a href ='createAccount.php'></a>";
}
else
{
print"Account created.";
}
@mysql_close($connection);
谢谢!
【问题讨论】:
-
您的插入发生在 在选择之前。用马换马车;-)
-
mysql_num_rows()不是mysql_numrows()- 你应该趁机升级到 mysqli 或 PDO -
你在插入后检查,所以db中总会有那个地址
-
哦,看起来;我们的 cmets 已转换。 vvvvvvvvvvvvvvvvvvvvvv
-
@Fred-ii- 非常感谢!这解决了它!