表单中的数据未使用php添加到数据库表中
我正在使用Xampp服务器,希望将数据添加到数据库表中。我不知道我做错了什么。服务器已启动并正在运行。选择框中的数据未插入数据库。我是php新手 编辑:我已经编辑了我的代码。我得到这个错误: 在此服务器上找不到请求的URL。参考页面上的链接似乎错误或过时。请将错误告知该页的作者 Test.php表单中的数据未使用php添加到数据库表中,php,html,mysql,xampp,Php,Html,Mysql,Xampp,我正在使用Xampp服务器,希望将数据添加到数据库表中。我不知道我做错了什么。服务器已启动并正在运行。选择框中的数据未插入数据库。我是php新手 编辑:我已经编辑了我的代码。我得到这个错误: 在此服务器上找不到请求的URL。参考页面上的链接似乎错误或过时。请将错误告知该页的作者 Test.php <form name="form2" action= "Sub.php" method="post"> <table style="width:100%"> &
<form name="form2" action= "Sub.php" method="post">
<table style="width:100%">
<thead>
<tr>
<th style="width:25px;">Section</th>
<th style="width:250px;">Definition</th>
<th style="width:30px;">Sub Process</th>
<th style="width:35px;">Response</th>
<th style="width:30px;">Area</th>
<th style="width:30px;">Rating</th>
<th style="width:40px;">Comments</th>
<th style="width:40px;">Improvement Plan</th>
</tr>
</thead>
<tbody>
<tr class="data">
<td>1.</td>
<td style="width:500px;">Does Problem Management adheres to incident analysis and trending to identify the problem?</td>
<td>Problem Detection</td>
<td>
<select name="Response[]">
<option >--Select Function--</option>
<option value="Defined">Defined</option>
<option value="Defined and Followed Completely without Automation">
Defined and Followed Completely without Automation</option>
<option value="Defined and Followed Partially without Automation">
Defined and Followed Partially without Automation</option>
<option value="Not Defined">
Not Defined</option>
<option value="Process Present but not followed">
Process Present but not followed</option>
<option value="Yes">Yes</option>
<option value="Not Applicable">Not Applicable</option>
</select>
</td>
<td>
<select name="Area[]">
<option >--Select Area--</option>
<option value="Process">Process</option>
<option value="Tool">Tool</option>
</select>
</td>
<td>
<select name="Rating[]">
<option value="0">--Select Rating--</option>
<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>
</td>
<td>
<textarea style="width:80px;" name = "Comments[]" placeholder="Please Provide Comments"></textarea>
</td>
<td>
<textarea style="width:80px;" name = "ImpPlan[]" placeholder="Please suggest Improvements"></textarea>
</td>
</tr>
<tr class="data">
<td>2.</td>
<td style="width:500px;">Are reactive and proactive problem management understood by teams?</td>
<td>Problem Detection</td>
<td>
<select name="Response[]">
<option>--Select Function--</option>
<option value="Defined">Defined</option>
<option value="Defined and Followed Completely without Automation">
Defined and Followed Completely without Automation</option>
<option value="Defined and Followed Partially without Automation">
Defined and Followed Partially without Automation</option>
<option value="Not Defined">
Not Defined</option>
<option value="Process Present but not followed">
Process Present but not followed</option>
<option value="Yes">Yes</option>
<option value="Not Applicable">Not Applicable</option>
</select>
</td>
<td>
<select name="Area[]">
<option>--Select Area--</option>
<option value="Process">Process</option>
<option value="Tool">Tool</option>
</select>
</td>
<td>
<select name="Rating[]">
<option value="0">--Select Rating--</option>
<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>
</td>
<td>
<textarea style="width:80px;" name = "Comments[]" placeholder="Please Provide Comments"></textarea>
</td>
<td>
<textarea style="width:80px;" name = "ImpPlan[]" placeholder="Please suggest Improvements"></textarea>
</td>
</tr>
</table>
<br><br><br>
<input type="submit" value="Submit">
</form>
Sub.php
<?php
$Response1=$_POST['Response'][0];
$Area1=$_POST['Area'][0];
$Rating1=$_POST['Rating'][0];
$Response2=$_POST['Response'][1];
$Area2=$_POST['Area'][1];
$Rating2=$_POST['Rating'][1];
$Comments=$_POST['Comments'];
$ImpPlan=$_POST['ImpPlan'];
$servername= 'localhost';
$username = 'root';
$password = '';
$dbname = 'db1';
$port = 3306;
$conn = new mysqli($servername, $username, $password, $dbname, $port);
echo "Connection successful!" . "<bc>";
$conn->query('CREATE TABLE IF NOT EXISTS `problemdet` (Response VARCHAR(100) NOT NULL, Area VARCHAR(100) NOT NULL, Rating VARCHAR(15) NOT NULL, Comments VARCHAR(100) NOT NULL, ImprovementPlan VARCHAR(100) NOT NULL);');
$sql = "INSERT INTO problemdet (Response, Area, Rating, Comments, ImprovementPlan)
VALUES ('$Response1', '$Response2', '$Area1', '$Area2', '$Rating1','$Rating2','$Comments', '$ImpPlan')";
if($conn->query($sql) === TRUE){
echo "New record created successfully";
} else {
echo "<bc> Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
在Sub.php中,您错过了$Comments行中的引号
$sql = "INSERT INTO problemdet (Response, Area, Rating, Comments, ImprovementPlan) VALUES ('$Response', '$Area', '$Rating',
'$Comments', '$ImpPlan')";
在Test.php中,您丢失了select的name属性,并将其放置在option标记中,因此将其更改为
<select name="Response[]">
<option >--Select Function--</option> ...
编辑并解释
您应该在浏览器中指定案例响应中的名称属性是一个数组,因为有多个选择输入具有相同的名称属性-response,因此它应该是response[]
在php中,您应该从数组中逐个获取值
例如$_POST['Response'][0]、$_POST['Response'][1]、,。。最多计数$\u POST['response']
你的例子
<select name="Response[]">
<option value="first_0">first</option>
<option value="second_0">second</option>
<option value="third_0">third</option>
</select>
<select name="Response[]">
<option value="first_1">first</option>
<option value="second_2">second</option>
<option value="third_3">third</option>
</select>
编辑2-为同一冒号插入多个值
编辑3-测试代码
<!DOCTYPE html>
<html>
<head>
<title>test</title>
</head>
<body>
<form name="form2" action= "register.php" method="post">
<select name="Response[]">
<option value="first_0">first</option>
<option value="second_0">second</option>
<option value="third_0">third</option>
</select>
<select name="Response[]">
<option value="first_1">first</option>
<option value="second_2">second</option>
<option value="third_3">third</option>
</select>
<input type="submit" name="submit">
</form>
</body>
</html>
sub.php
<?php
if(isset($_POST['submit'])){
echo $Response1 = $_POST['Response'][0];
echo $Response2 = $_POST['Response'][1];
}
?>
谢谢@PavanKumar,我一定会尝试一下你的代码。非常感谢@PavanKumar,你的更正非常有效。你能不能用一个我将用于选择属性的代码来详细说明数组的内容。提前谢谢!我已经用我的话解释了,希望你能理解。。如果您还有任何疑问,您可以发表评论,以便我可以从一些链接中搜索引用。我只是想知道如何使用phpI在mysql数据库的不同行中发布此数组值。我已经编辑了我的答案,您是要求还是要求动态循环?
<select name="Response[]">
<option value="first_0">first</option>
<option value="second_0">second</option>
<option value="third_0">third</option>
</select>
<select name="Response[]">
<option value="first_1">first</option>
<option value="second_2">second</option>
<option value="third_3">third</option>
</select>
echo $get_select_value_1 = $_POST['Response'][0];
echo $get_select_value_2 = $_POST['Response'][1];
//output will be
third_0 //--$get_select_value_1
second_2 //--$get_select_value_2
$Response1 = $_POST['Response'][0];
$Response2 = $_POST['Response'][1];
$sql = "INSERT INTO problemdet (Response) VALUES ('$Response1'),('$Response2')";//upto so on
<!DOCTYPE html>
<html>
<head>
<title>test</title>
</head>
<body>
<form name="form2" action= "register.php" method="post">
<select name="Response[]">
<option value="first_0">first</option>
<option value="second_0">second</option>
<option value="third_0">third</option>
</select>
<select name="Response[]">
<option value="first_1">first</option>
<option value="second_2">second</option>
<option value="third_3">third</option>
</select>
<input type="submit" name="submit">
</form>
</body>
</html>
<?php
if(isset($_POST['submit'])){
echo $Response1 = $_POST['Response'][0];
echo $Response2 = $_POST['Response'][1];
}
?>