ronnie88 Posted July 23, 2008 Share Posted July 23, 2008 Hi iam having a problem inserting data into multiple tables any help would be appreciated I'm trying to insert the username variable into the users table and virtuala table... I've searched any help would be greatly appreciated.. The one im using right now inserts it into the users table but not the virtuala table...thanks again <? session_start(); include("database.php"); /** * Returns true if the username has been taken * by another user, false otherwise. */ function usernameTaken($username){ global $conn; if(!get_magic_quotes_gpc()){ $username = addslashes($username); } $q = "select username from users where username = '$username'"; $result = mysql_query($q,$conn); return (mysql_numrows($result) > 0); } /** * Inserts the given (username, password) pair * into the database. Returns true on success, * false otherwise. */ function addNewUser($username, $password){ global $conn; $q = "INSERT INTO users VALUES ('$username', '$password')"; return mysql_query($q,$conn); $q = "INSERT INTO virtuala VALUES ('$username')"; return mysql_query($q,$conn); } /** * Displays the appropriate message to the user * after the registration attempt. It displays a * success or failure status depending on a * session variable set during registration. */ function displayStatus(){ $uname = $_SESSION['reguname']; if($_SESSION['regresult']){ ?> <h1>Registered!</h1> <p>Thank you <b><? echo $uname; ?></b>, your information has been added to the database, you may now <a href="main.php" title="Login">log in</a>.</p> <? } else{ ?> <h1>Registration Failed</h1> <p>We're sorry, but an error has occurred and your registration for the username <b><? echo $uname; ?></b>, could not be completed.<br> Please try again at a later time.</p> <? } unset($_SESSION['reguname']); unset($_SESSION['registered']); unset($_SESSION['regresult']); } if(isset($_SESSION['registered'])){ /** * This is the page that will be displayed after the * registration has been attempted. */ ?> <html> <title>Registration Page</title> <body> <? displayStatus(); ?> </body> </html> <? return; } /** * Determines whether or not to show to sign-up form * based on whether the form has been submitted, if it * has, check the database for consistency and create * the new account. */ if(isset($_POST['subjoin'])){ /* Make sure all fields were entered */ if(!$_POST['user'] || !$_POST['pass']){ die('You didn\'t fill in a required field.'); } /* Spruce up username, check length */ $_POST['user'] = trim($_POST['user']); if(strlen($_POST['user']) > 30){ die("Sorry, the username is longer than 30 characters, please shorten it."); } /* Check if username is already in use */ if(usernameTaken($_POST['user'])){ $use = $_POST['user']; die("Sorry, the username: <strong>$use</strong> is already taken, please pick another one."); } /* Add the new account to the database */ $md5pass = md5($_POST['pass']); $_SESSION['reguname'] = $_POST['user']; $_SESSION['regresult'] = addNewUser($_POST['user'], $md5pass); $_SESSION['registered'] = true; echo "<meta http-equiv=\"Refresh\" content=\"0;url=$HTTP_SERVER_VARS[php_SELF]\">"; return; } else{ /** * This is the page with the sign-up form, the names * of the input fields are important and should not * be changed. */ ?> <html> <title>Registration Page</title> <body> <h1>Register</h1> <form action="<? echo $HTTP_SERVER_VARS['PHP_SELF']; ?>" method="post"> <table align="left" border="0" cellspacing="0" cellpadding="3"> <tr><td>Username:</td><td><input type="text" name="user" maxlength="30"></td></tr> <tr><td>Password:</td><td><input type="password" name="pass" maxlength="30"></td></tr> <tr><td colspan="2" align="right"><input type="submit" name="subjoin" value="Join!"></td></tr> </table> </form> </body> </html> <? } ?> function addNewUser($username, $password){ global $conn; $q = "INSERT INTO users VALUES ('$username', '$password')"; return mysql_query($q,$conn); $q = "INSERT INTO virtuala VALUES ('$username')"; return mysql_query($q,$conn); } i've tried this like some search results said but just gives me registration failed: function addNewUser($username, $password){ global $conn; $q = "INSERT INTO users VALUES ('$username', '$password'); INSERT INTO virtuala VALUES ('$username')"; return mysql_query($q,$conn); } Quote Link to comment https://forums.phpfreaks.com/topic/116295-solved-mysql-and-php-insert-data-into-multiple-table/ Share on other sites More sharing options...
revraz Posted July 23, 2008 Share Posted July 23, 2008 Use mysql_error() after the query to see why it failed. Echo the query to see what it contains. Quote Link to comment https://forums.phpfreaks.com/topic/116295-solved-mysql-and-php-insert-data-into-multiple-table/#findComment-598010 Share on other sites More sharing options...
ronnie88 Posted July 23, 2008 Author Share Posted July 23, 2008 sorry, but how would i do that.... Quote Link to comment https://forums.phpfreaks.com/topic/116295-solved-mysql-and-php-insert-data-into-multiple-table/#findComment-598022 Share on other sites More sharing options...
.josh Posted July 23, 2008 Share Posted July 23, 2008 $result = mysql_query($q,$conn) or trigger_error(mysql_error(), E_ALL); Quote Link to comment https://forums.phpfreaks.com/topic/116295-solved-mysql-and-php-insert-data-into-multiple-table/#findComment-598027 Share on other sites More sharing options...
ronnie88 Posted July 23, 2008 Author Share Posted July 23, 2008 no errors... Quote Link to comment https://forums.phpfreaks.com/topic/116295-solved-mysql-and-php-insert-data-into-multiple-table/#findComment-598077 Share on other sites More sharing options...
ronnie88 Posted July 23, 2008 Author Share Posted July 23, 2008 place the echo $result in the reply like this: <h1>Registration Failed</h1> <p>We're sorry, but an error has occurred and your registration for the username <b><? echo $uname; ?></b>,<?echo $result;?> could not be completed.<br> Please try again at a later time.</p> but nothing comes up ahh I'm so confused thank you for all your help I hope someone can help me out.. thanks again Quote Link to comment https://forums.phpfreaks.com/topic/116295-solved-mysql-and-php-insert-data-into-multiple-table/#findComment-598084 Share on other sites More sharing options...
.josh Posted July 23, 2008 Share Posted July 23, 2008 Okay I think I know what the problem is. function addNewUser($username, $password){ global $conn; $q = "INSERT INTO users VALUES ('$username', '$password')"; return mysql_query($q,$conn); $q = "INSERT INTO virtuala VALUES ('$username')"; return mysql_query($q,$conn); } When you do your first return, php ignores the rest of the code in the function, so your 2nd query is never getting executed. Quote Link to comment https://forums.phpfreaks.com/topic/116295-solved-mysql-and-php-insert-data-into-multiple-table/#findComment-598093 Share on other sites More sharing options...
ronnie88 Posted July 24, 2008 Author Share Posted July 24, 2008 that sounds like it but I am getting an error now... saying registration failed..... here is that the code looks like now I just tried running another function: <? session_start(); include("database.php"); /** * Returns true if the username has been taken * by another user, false otherwise. */ function usernameTaken($username){ global $conn; if(!get_magic_quotes_gpc()){ $username = addslashes($username); } $q = "select username from users where username = '$username'"; $result = mysql_query($q,$conn) or trigger_error(mysql_error(), E_ALL); return (mysql_numrows($result) > 0); } /** * Inserts the given (username, password) pair * into the database. Returns true on success, * false otherwise. */ function addNewUser($username, $password){ global $conn; $q = "INSERT INTO users VALUES ('$username', '$password')"; return mysql_query($q,$conn); } function useradd($username){ global $conn; $q = "INSERT INTO virtuala VALUES ('$username')"; return mysql_query($q,$conn); } /** * Displays the appropriate message to the user * after the registration attempt. It displays a * success or failure status depending on a * session variable set during registration. */ function displayStatus(){ $uname = $_SESSION['reguname']; if($_SESSION['regresult']){ ?> <h1>Registered!</h1> <p>Thank you <b><? echo $uname; ?></b>, your information has been added to the database, you may now <a href="main.php" title="Login">log in</a>.</p> <? } else{ ?> <h1>Registration Failed</h1> <p>We're sorry, but an error has occurred and your registration for the username <b><? echo $uname; ?></b>,<?echo $result;?> could not be completed.<br> Please try again at a later time.</p> <? } unset($_SESSION['reguname']); unset($_SESSION['registered']); unset($_SESSION['regresult']); } if(isset($_SESSION['registered'])){ /** * This is the page that will be displayed after the * registration has been attempted. */ ?> <html> <title>Registration Page</title> <body> <? displayStatus(); ?> </body> </html> <? return; } /** * Determines whether or not to show to sign-up form * based on whether the form has been submitted, if it * has, check the database for consistency and create * the new account. */ if(isset($_POST['subjoin'])){ /* Make sure all fields were entered */ if(!$_POST['user'] || !$_POST['pass']){ die('You didn\'t fill in a required field.'); } /* Spruce up username, check length */ $_POST['user'] = trim($_POST['user']); if(strlen($_POST['user']) > 30){ die("Sorry, the username is longer than 30 characters, please shorten it."); } /* Check if username is already in use */ if(usernameTaken($_POST['user'])){ $use = $_POST['user']; die("Sorry, the username: <strong>$use</strong> is already taken, please pick another one."); } /* Add the new account to the database */ $md5pass = md5($_POST['pass']); $_SESSION['reguname'] = $_POST['user']; $_SESSION['regresult'] = addNewUser($_POST['user'], $md5pass); $_SESSION['regresult'] = useradd($_POST['user'], $md5pass); $_SESSION['registered'] = true; echo "<meta http-equiv=\"Refresh\" content=\"0;url=$HTTP_SERVER_VARS[php_SELF]\">"; return; } else{ /** * This is the page with the sign-up form, the names * of the input fields are important and should not * be changed. */ ?> <html> <title>Registration Page</title> <body> <h1>Register</h1> <form action="<? echo $HTTP_SERVER_VARS['PHP_SELF']; ?>" method="post"> <table align="left" border="0" cellspacing="0" cellpadding="3"> <tr><td>Username:</td><td><input type="text" name="user" maxlength="30"></td></tr> <tr><td>Password:</td><td><input type="password" name="pass" maxlength="30"></td></tr> <tr><td colspan="2" align="right"><input type="submit" name="subjoin" value="Join!"></td></tr> </table> </form> </body> </html> <? } ?> Quote Link to comment https://forums.phpfreaks.com/topic/116295-solved-mysql-and-php-insert-data-into-multiple-table/#findComment-598219 Share on other sites More sharing options...
ronnie88 Posted July 24, 2008 Author Share Posted July 24, 2008 hahaha nvm I got it thank your guys so much you guys are great! Quote Link to comment https://forums.phpfreaks.com/topic/116295-solved-mysql-and-php-insert-data-into-multiple-table/#findComment-598230 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.