I have been working on adding data to my sql database i have tryed many different ways of doing this but am still gettting the same errors.
Notice: Undefined index: ModuleId in N:\\ftp\\compc\\d11os\\Project\\addModule.php on line 63
Notice: Undefined index: Title in N:\\ftp\\compc\\d11os\\Project\\addModule.php on line 64
Notice: Undefined index: CreditLevel in N:\\ftp\\compc\\d11os\\Project\\addModule.php on line 65
Notice: Undefined index: CreditPoints in N:\\ftp\\compc\\d11os\\Project\\addModule.php on line 66
Notice: Undefined index: Status in N:\\ftp\\compc\\d11os\\Project\\addModule.php on line 67
what am i doing wring i know it probly somthing smalll but i cant see it and really need help?
here is the code i am using
<?php
$con=mysqli_connect("localhost","ROOT","ROOT","ROOTdb");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// escape variables for security
$ModuleId = mysqli_real_escape_string($con, $_POST['ModuleId']);
$Title = mysqli_real_escape_string($con, $_POST['Title']);
$CreditLevel = mysqli_real_escape_string($con, $_POST['CreditLevel']);
$CreditPoints = mysqli_real_escape_string($con, $_POST['CreditPoints']);
$Status = mysqli_real_escape_string($con, $_POST['Status']);
$Award = mysqli_real_escape_string($con, $_POST['Award']);
$sql="INSERT INTO module(ModuleId, Title, CreditLevel, CreditPoints, Status, Award)
VALUES ('$ModuleId', '$Title', '$CreditLevel' ,'$CreditPoints', '$Status', '$Award')";
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);
?>
Html code im using
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
<img src="logo.jpg" alt="University of Ulster Logo" width="332" height="132">
<h1 style="font-family:Bell MT;color:blue;font-size:28px;">Add a New Module.</h1>
</head>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table border="0">
<tr><td>Module:</td><td>
<input type="text" name="name" maxlength="60" required>
</td></tr>
<tr><td>Title:</td><td>
<input type="text" name="telephoneNo" maxlength="60" required>
</td></tr>
<tr><td>CreditLevel:</td><td>
<input type="text" name="email" maxlength="60" required>
</td></tr>
<tr><td>CreditPoints:</td><td>
<input type="text" name="course" maxlength="60" required>
</td></tr>
<tr><td>Status:</td><td>
<input type="text" name="Staus" maxlength="100" required>
</td></tr>
<tr><td>Award:</td><td>
<input type="text" name="Award" maxlength="100" required>
</td></tr>
<td colspan="2" style="text-align:center">
<input type="submit" name='submit' value='Submit'>
</form>
The issue is appearing because the variables you are using are not defined in the $_POST
array.
Try something like
if (isset($_POST['ModuleId']))
{
$ModuleId = mysqli_real_escape_string($con, $_POST['ModuleId']);
} else {
$ModuleId = -1; // Default value or Error flag
echo "Module Id is not specified.";
}
and so on for your other variables.
It is probably a good idea to check that all the values are present, prior to insert. For example,
if ($ModuleId != -1) {
$sql="INSERT INTO module(ModuleId, Title, CreditLevel, CreditPoints, Status, Award)
VALUES ('$ModuleId', '$Title', '$CreditLevel' ,'$CreditPoints', '$Status', '$Award')";
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
}
mysqli_close($con);
// EDIT
You issue seems to be stemming from not checking if the page has done a post back. When the page is first loaded, it will try to insert data - but there is no data to insert as you have not submitted the form.
Wrap your php code with a simple check like so
<?php
if (isset($_POST['submit']))
{
$con=mysqli_connect("localhost","ROOT","ROOT","ROOTdb");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// escape variables for security
$ModuleId = mysqli_real_escape_string($con, $_POST['ModuleId']);
$Title = mysqli_real_escape_string($con, $_POST['Title']);
$CreditLevel = mysqli_real_escape_string($con, $_POST['CreditLevel']);
$CreditPoints = mysqli_real_escape_string($con, $_POST['CreditPoints']);
$Status = mysqli_real_escape_string($con, $_POST['Status']);
$Award = mysqli_real_escape_string($con, $_POST['Award']);
$sql="INSERT INTO module(ModuleId, Title, CreditLevel, CreditPoints, Status, Award)
VALUES ('$ModuleId', '$Title', '$CreditLevel' ,'$CreditPoints', '$Status', '$Award')";
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);
}
?>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.