VTXmom Posted February 21, 2015 Share Posted February 21, 2015 I am trying to complete a class assignment of building a website, pretty much a final project, and I am having an issue with one of my pages. I created a form that a user fills out and submits to a mysql database. My issue is that it is adding a row to the database, but it is unpopulated. I will be the first to admit that I'm not sure what I am doing, and was wondering if someone could look at my code and tell me where I am going wrong. I've googled this issue and tried all the fixes that were posted but nogo. Thanks in advance for any help. Here is the code for my php script: <?php$link = mysqli_connect('localhost', '****', '******', 'pet_shop');if($link === false) { die("ERROR: Could not connect. " . mysqli_connect_error());} error_reporting(E_ALL ^ E_NOTICE); $firstname = isset($link, $_POST['FirstName'])? $_POST['$firstame'] : '';$lastname = isset($link, $_POST['LastName'])? $_POST['$LastName'] : '';$address = isset($link, $_POST['Address'])? $_POST['$Address'] : '';$city = isset($link, $_POST['City'])? $_POST['$City'] : '';$state = isset($link, $_POST['State'])? $_POST['$State'] : '';$zip = isset($link, $_POST['Zip'])? $_POST['$Zip'] : '';$phonenumber = isset($link, $_POST['PhoneNumber'])? $_POST['$PhoneNumber'] : '';$email = isset($link, $_POST['Email'])? $_POST['$Email'] : '';$pettype = isset($link, $_POST['PetType'])? $_POST['$PetType'] : '';$breed = isset($link, $_POST['Breed'])? $_POST['$Breed'] : '';$petname = isset($link, $_POST['PetName'])? $_POST['$PetName'] : '';$neuteredorspayed = isset($link, $_POST['NeuteredOrSpayed'])? $_POST['$NeuteredOrSpayed'] : '';$petbirthday = isset($link, $_POST['PetBirthday'])? $_POST['$PetBirthday'] : '';$sql = "INSERT INTO `pet_shop`.`grooming` (`FirstName`, `LastName`, `Address`,`City`, `State`, `Zip`, `PhoneNumber`, `Email`, `PetType`, `Breed`, `PetName`,`NeuteredOrSpayed`, `PetBirthday`) VALUES ('$firstname', '$lastname', '$address','$city', '$state', '$zip', '$phonenumber', '$email', '$pettype', '$breed','$petname', '$neuteredorspayed', '$petbirthday');";if(mysqli_query($link, $sql)) { echo "A member of our staff will contact you to set up an appointment..";}else{ echo "ERROR: Could not execute $sql. " . mysqli_error($link);}mysqli_close($link);?> Link to comment https://forums.phpfreaks.com/topic/294762-blank-rows-submitted-to-database/ Share on other sites More sharing options...
marius_haugan Posted February 21, 2015 Share Posted February 21, 2015 I can't see what's giving you trouble. It's difficult to read the code when it's not formatted. (I'm a noob too!) You should use the full editor when posting and select the "code-option" for better readability! But anyway, here is a basic set up for retrieving and sending values from an HTML form to your database. Maybe it will help. <form method="POST" action="$_SERVER['PHP_SELF']"> Name: <input type="text" name="my_name"> Phone: <input type="number" name="my_phone"> <input type="submit"> </form> <?php $dbhost = "localhost"; $dbuser = "my_username"; $dbpass = "my_password"; $dbname = "my_database"; $dblink = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname); $value1 = "$_POST['my_name']"; $value2 = "$_POST['my_phone']"; $query = "INSERT INTO table_name (column1, column2) VALUES ('$value1', '$value2'); mysqli_query($dblink, $query); ?> Make sure your database is defined correctly, and see if you can get this basic set up to work. Then, expand one line of code at a time and you should be able to get where you want to be! Link to comment https://forums.phpfreaks.com/topic/294762-blank-rows-submitted-to-database/#findComment-1506301 Share on other sites More sharing options...
IamCrazyD Posted February 21, 2015 Share Posted February 21, 2015 Your code: $firstname = isset($link, $_POST['FirstName'])? $_POST['$firstame'] : ''; My Code: $firstname = isset($_POST['FirstName']) ? mysqli_real_escape_string( $link, $_POST["FirstName"] ) : ''; From the ducumentation: For more information, visit here: http://php.net/manual/en/function.isset.php isset — Determine if a variable is set and is not NULL bool isset ( mixed $var [, mixed $... ] ) In $_POST after ? in your code, you have passed the variable which will return ''; And hence, you are not seeing that the values are inserted in the database. So your code should look like this: <?php error_reporting(E_ALL ^ E_NOTICE); $link = mysqli_connect( 'localhost', '****', '******', 'pet_shop'); if( !$link ) { die( "ERROR: Could not connect: " . mysqli_connect_error( $link ) ); } //You need to use mysqli_real_escape_string() method to avoid sql injection; // Refer this link for more information http://php.net/manual/en/mysqli.real-escape-string.php $firstname = isset( $_POST['FirstName'] ) ? mysqli_real_escape_string( $link, $_POST['FirstName'] ) : ''; $lastname = isset( $_POST['LastName'] ) ? mysqli_real_escape_string( $link, $_POST['LastName'] ) : ''; $address = isset( $_POST['Address'] ) ? mysqli_real_escape_string( $link, $_POST['Address'] ) : ''; //and so on... $sql = "INSERT INTO `pet_shop`.`grooming` (`FirstName`, `LastName`, `Address`, ... ) VALUES ( ' " . $firstname . " ', ' " . $lastname . " ', ' " . $address . " ' , ...)"; $result = $mysqli_query( $link, $sql ); if( $result ) { // remove the echo line or else you will face a warning of cannot modify header. // You can create a new file and write the echo statement in that file // You can then call that file in the header function below. echo "A member of our staff will contact you to set up an appointment.."; // To avoid twice insertion in the database on page refresh header("Location: /path/to/your/file.php"); // To stop the execution of the current page. exit(); } else { echo "ERROR: Could not execute the query. " . mysqli_error( $link ); } mysqli_close( $link ); ?> Link to comment https://forums.phpfreaks.com/topic/294762-blank-rows-submitted-to-database/#findComment-1506304 Share on other sites More sharing options...
VTXmom Posted February 21, 2015 Author Share Posted February 21, 2015 IAmCrazyD, Thank you, that worked! I have been fighting with this for two weeks. Now onto the next step Link to comment https://forums.phpfreaks.com/topic/294762-blank-rows-submitted-to-database/#findComment-1506358 Share on other sites More sharing options...
VTXmom Posted February 21, 2015 Author Share Posted February 21, 2015 I can't see what's giving you trouble. It's difficult to read the code when it's not formatted. (I'm a noob too!) You should use the full editor when posting and select the "code-option" for better readability! But anyway, here is a basic set up for retrieving and sending values from an HTML form to your database. Maybe it will help. <form method="POST" action="$_SERVER['PHP_SELF']"> Name: <input type="text" name="my_name"> Phone: <input type="number" name="my_phone"> <input type="submit"> </form> <?php Marius, thanks, where do I find the full editor? $dbhost = "localhost"; $dbuser = "my_username"; $dbpass = "my_password"; $dbname = "my_database"; $dblink = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname); $value1 = "$_POST['my_name']"; $value2 = "$_POST['my_phone']"; $query = "INSERT INTO table_name (column1, column2) VALUES ('$value1', '$value2'); mysqli_query($dblink, $query); ?> Make sure your database is defined correctly, and see if you can get this basic set up to work. Then, expand one line of code at a time and you should be able to get where you want to be! Link to comment https://forums.phpfreaks.com/topic/294762-blank-rows-submitted-to-database/#findComment-1506359 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.