I am trying to create a signup form and insert them to the database. I coded it right according to my knowledge, but it displays users already exits but no records in my database. From my Signup form
if (isset($_POST['btn_signup'])) {
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$usernme = $_POST['username'];
$pass = $_POST['password'];
$email = $_POST['email'];
$country = $_POST['country'];
$dropdown = $_POST['dropdown'];
$query = "INSERT INTO tbl_users (first_name,last_name,username,password,email,country,user_type)VALUES('{$fname}','{$lname}','{$usernme}','{$pass}','{$email}','{$country}','{$dropdown}')";
$result = mysql_query($query, $con);
if ($result) {
echo "<script type='text/javascript'>alert('submitted successfully!')</script>";
} else {
echo "<script type='text/javascript'>alert('User already exist!')</script>";
}
}
the form is
<form action="signup.php" method="post" class="form">
<input type="text" name="fname" placeholder="First Name" required="First Name"><br/>
<input type="text" name="lname" placeholder="Last Name" required="Last Name"><br/>
<input type="text" name="username" placeholder="Username" required="Username"><br/>
<input type="password" name="password" placeholder="Password" required="Password"><br/>
<input type="email" name="email" placeholder="Email" required="Email"><br/>
<input type="text" name="country" placeholder="Country" required="Country"><br/>
<select class="wrapper-dropdown" name="dropdown">
<option value=1>Player</option>
<option value=2>Recruiters</option>
</select>
<br/> <br/> <br/>
<button type="submit" name="btn_signup">Signup</button>
<p>Get in to your account <a href="index.php">Signin</a></p>
</form>
the database is in this order. users_id,first_name,last_name,username,password,email,country,user_type
please help!!
Your query has a typo...
$query = "INSERT INTO tbl_users (first_name,last_name,username,password,email,country,user_type)VALUES('{$fname}','{$lname}','{$usernme}','{$pass}','{$email}','{$country}','{$dropdown}')";
it should be {username}
not {usernme}
I can't comment because of low rp. I will delete this answer if typo is not the issue
Try this code. It will work.
$query = "INSERT INTO tbl_users (first_name,last_name,username,password,email,country,user_type)
VALUES('$fname','$lname','$usernme','$pass','$email','$country','$dropdown')";
$result = mysql_query($query, $con);
if ($result) {
echo "<script type='text/javascript'>alert('submitted successfully!')</script>";
} else {
echo "<script type='text/javascript'>alert('User already exist!')</script>";
}
Please try this solve your problem:
Code:-
if(isset($_REQUEST['btn_signup']) && trim($_REQUEST['btn_signup']) == "Signup")
{
$fname = addslashes(trim($_REQUEST['fname']));
$lname = addslashes(trim($_REQUEST['lname']));
$username = addslashes(trim($_REQUEST['username']));
$password = addslashes(trim($_REQUEST['password']));
$email = addslashes(trim($_REQUEST['email']));
$country = addslashes(trim($_REQUEST['country']));
$dropdown = addslashes(trim($_REQUEST['dropdown']));
$query = "INSERT INTO tbl_users (`first_name`,`last_name`, `username`, `password`, `email`, `country`, `user_type`)
VALUES ('".$fname."', '".$lname."','".$username."','".$password."','".$email."','".$country."', '".$dropdown."')";
$result = mysql_query($query, $con);
if ($result) {
echo "<script type='text/javascript'>alert('submitted successfully!')</script>";
} else {
echo "<script type='text/javascript'>alert('User already exist!')</script>";
}
}
Your form here:-
<form action="signup.php" name="signup_form" id="signup_form" method="post" class="form" enctype="multipart/form-data">
<input type="text" name="fname" placeholder="First Name" required="First Name"><br/>
<input type="text" name="lname" placeholder="Last Name" required="Last Name"><br/>
<input type="text" name="username" placeholder="Username" required="Username"><br/>
<input type="password" name="password" placeholder="Password" required="Password"><br/>
<input type="email" name="email" placeholder="Email" required="Email"><br/>
<input type="text" name="country" placeholder="Country" required="Country"><br/>
<select class="wrapper-dropdown" name="dropdown">
<option value=1>Player</option>
<option value=2>Recruiters</option>
</select>
<br/> <br/> <br/>
<button type="submit" name="btn_signup" id="btn_signup" value="Signup">Signup</button>
<p>Get in to your account <a href="index.php">Signin</a></p>
</form>
Based on this comment:
I tried to insert values manually then it says Incorrect integer value: '' for column 'tbl_health_health_id' at row 1
And this comment:
i made relationship with the tbl_users and tbl_bowlAverg
You have a trigger, a stored procedure or a function in your database.
The easiest way of checking is "SHOW TRIGGERS" (https://dev.mysql.com/doc/refman/5.0/en/show-triggers.html) or "SHOW PROCEDURE STATUS" (https://dev.mysql.com/doc/refman/5.0/en/show-procedure-status.html) or "SHOW FUNCTION STATUS"
The trigger (or procedure that the trigger will call) will be
CREATE TRIGGER triggerName BEFORE INSERT ON tbl_users
-> FOR EACH ROW INSERT INTO tbl_bowlAverg(fields) values (values);
It's that second query causing you a problem: try running it separately to debug that bit alone.
You problem will be that tbl_health_health_id
will be set to be an integer and not null, but you are either trying to insert a string (in which case, modify your trigger) or a null (in which case either specify a value in your insert string, specify a default value in your table schema, or allow nulls).
One tip: unless you have a really good reason to use nulls, always specify default values for your fields unless you are absolutely sure you'll provide one.