Reputation: 105
I'm just starting to make a website. On the top of the registration page, there's a search bar where you can find existing user. After user is found and selected, it will auto fill in the values in the registration form. From there, you could update the user informations. Or create a new user. For some reason, no matter what values i put in, it only calls the update function and not creating a new user. Any help will be greatly appreciated. thanks!
//Checks database to see if user exist by first name and last name
$check_exist ="SELECT * FROM staff WHERE firstname= '$firstname' AND lastname='$lastname'";
$exist_result = mysql_query($check_exist);
echo "TEST exist_result:" .$exist_result ."<br>";
//Updates user if user already exist
if($exist_result)
{
echo "Update function called... <br>";
for($i = 0; $exist_row = mysql_fetch_array($exist_result); $i++)
{
//get the id number
$ID = $exist_row['ID'];
}
//Updates staff table
mysql_query("UPDATE staff SET position = '$position', firstname = '$firstname', lastname = '$lastname',
address = '$address', city = '$city', state = '$state', zipcode = '$zipcode', phone = '$phone', ss = '$ss'
WHERE ID = '$ID'");
//Updates login table
mysql_query("UPDATE login SET ID = '$ID', position = '$position', username = '$username', password = '$password', email = '$email' WHERE ID = '$ID'");
}
//Registers user if user doesn't exist in database
else
{
echo "Insert function called...<br>";
//Insert Staff information
$insert_staff = "INSERT INTO staff (position, firstname, lastname,
address, city, state, zipcode, phone, ss)
VALUES ('$position','$firstname','$lastname','$address','$city',
'$state','$zipcode','$phone','$ss')";
mysql_query($insert_staff);
//This gets the newly created unqiue ID number from staff and insert it into login table
$get_id = mysql_query("SELECT * FROM staff
WHERE firstname='$firstname' AND lastname ='$lastname'");
$login_row = mysql_fetch_array($get_id);
$eID = $login_row['ID'];
//Insert Login information
$query2 = "INSERT INTO login (ID, position, username, password, email)
VALUES ('$eID', '$position','$username','$password','$email')";
mysql_query($query2);
}
Here's the error i get:
Notice: Use of undefined constant myusername - assumed 'myusername' in /Applications/MAMP/htdocs/cms/manager/insertReg.php on line 9
Deprecated: Function session_is_registered() is deprecated in /Applications/MAMP/htdocs/cms/manager/insertReg.php on line 9
Notice: A session had already been started - ignoring session_start() in /Applications/MAMP/htdocs/CMS/connectdb.php on line 8
TEST first name:ksdfjlsdkjf3242
TEST last name:lkjdslfkjdslkj
TEST exist_result:Resource id #5
Update function called...
Notice: Undefined variable: ID in /Applications/MAMP/htdocs/cms/manager/insertReg.php on line 55
Notice: Undefined variable: ID in /Applications/MAMP/htdocs/cms/manager/insertReg.php on line 58
Notice: Undefined variable: ID in /Applications/MAMP/htdocs/cms/manager/insertReg.php on line 59
Upvotes: 1
Views: 267
Reputation: 576
In reply to @jeroen, this code should help @ylhtravis:
if (mysql_num_rows($exist_result)) {
//error code here
} else {
//continue
}
Upvotes: 1
Reputation: 91734
The problem is that you are testing for $exist_result
and that will always return true
as long as the query is valid (it returns a resource and that evaluates to true).
You need to count the rows in $exist_result
and check for 0
rows.
I would recommend switching to PDO / prepared statements, but in your case you can use:
mysql_num_rows($exist_result);
Upvotes: 1