Reputation: 35
I have a PHP system where the user will enter details into a form. Once text fields are entered it inserts my data into my database. However, I have drop down lists that do not insert into the database. Could anyone help on this matter as I am a moderate user and have not used PHP a lot. Thank you.
InsertDetails.php
<div class="row">
<div class="label">Adults 18+</div><!--end label-->
<div class="input">
<select name="adultsPlusEight" id="adultsPlusEight" class="detail" name="adultsPlusEight">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
</div><!--end input-->
<div class="context"> Choose how many people to book maximum of 10 per booking</div><!--end context-->
</div><!--end row-->
INSERT.PHP<?php
$link = mysqli_connect("localhost", "root", "", "loginsystem");
// Check connection
if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
// Escape user inputs for security
$fName = mysqli_real_escape_string($link, $_POST['firstname']);
$sName = mysqli_real_escape_string($link, $_POST['lastname']);
$telNumb = mysqli_real_escape_string($link, $_POST['teleNumber']);
$custEmail = mysqli_real_escape_string($link, $_POST['email']);
$location = mysqli_real_escape_var_dump($link, $_POST['wlocation']);
$adultPlus = mysqli_real_escape_integer($link, $_POST['adultsPlusEight']);
$childPlus = mysqli_real_escape_integer($link, $_POST['childrenPlusTwo']);
$addinfo = mysqli_real_escape_string($link, $_POST['additInform']);
// attempt insert query execution
$sql = "INSERT INTO customerdragon (fName, sName, telNumb, custEmail,
$location , adultPlus, childPlus, addinfo) VALUES ('$fName', '$sName', '$telNumb', '$custEmail', '$location', '$adultPlus', '$adultPlus', '$childPlus', '$addinfo', )";
if(mysqli_query($link, $sql)){
echo "Records added successfully.";
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
// close connection
mysqli_close($link);
?>`
Upvotes: 1
Views: 74
Reputation: 74220
That echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
should have thrown you an SQL error, something you didn't share with us.
Look at this in your VALUES
'$addinfo',
^
This is the error I receive: Notice: Undefined index: wlocation in C:\xampp\htdocs\PHPLogInSystem\insert1.php on line 14"
You also have a $
in $location
for your column name:
$sql = "INSERT INTO customerdragon (fName, sName, telNumb, custEmail, $location
^
Remember the $
in $location
in your column names (fName, sName, telNumb, custEmail,
$location , adultPlus, childPlus, addinfo)
?
That needs to read as:
(fName, sName, telNumb, custEmail, custLocation, adultPlus, childPlus, addinfo)
as per your DB schema.
Edit:
Also, you're repeating '$adultPlus', '$adultPlus',
which would count as a miscount in data entry.
$sql = "INSERT INTO customerdragon
(fName, sName, telNumb, custEmail, custLocation, adultPlus, childPlus, addinfo)
VALUES
('$fName', '$sName', '$telNumb', '$custEmail', '$location', '$adultPlus', '$childPlus', '$addinfo')";
Add error reporting to the top of your file(s) which will help find errors.
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
Sidenote: Error reporting should only be done in staging, and never production.
Upvotes: 0