Php 如何使用单选按钮更新MySQL中的数据?
大家好下午好 我能问个问题吗?但在此之前,这里是我的代码Php 如何使用单选按钮更新MySQL中的数据?,php,html,mysql,Php,Html,Mysql,大家好下午好 我能问个问题吗?但在此之前,这里是我的代码 <html> <center> <font size="2" face = "century gothic"> <?php $con=mysqli_connect("localhost","root","","election2016"); // Check connection if (mysqli_connect_errno()) {
<html>
<center>
<font size="2" face = "century gothic">
<?php
$con=mysqli_connect("localhost","root","","election2016");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM candidate_info");
echo "<table border='1'>
<tr>
<th>Candidate Name</th>
<th>Position</th>
<th>Vote</th>
<th>Number of Votes</th>
</tr>";
while ($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['CandidateName'] . "</td>";
echo "<td>" . $row['Position'] . "</td>";
echo "<td><input type='radio' name='candidateid'/>";
echo "<td>" . $row['NumberofVotes'] . "</td>";
}
echo "</table>";
mysqli_close($con);
?>
<br>
<br>
<form method = "post" action = "<?php $_PHP_SELF ?>">
<input name = "update" type = "submit" id = "update" value = "Update">
</form>
</center>
</font>
</html>
<?php
if(isset($_POST['update'])) {
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$candidateid = $row['candidateid'];
$sql = "UPDATE candidate_info SET numberofvotes = '1' WHERE candidateid = $candidateid" ;
mysql_select_db('election2016');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";
mysql_close($conn);
}
?>
我检查了这个代码,它正在工作。问题是在发布表单时没有$row数组。因此,您必须将带有隐藏字段的id发送到页面。这是我做的让你的代码工作。先生,我尝试了代码,但它不工作。我得到一个未定义的错误index@AlexiusjoeCoronel你能给我看看你的数据库结构吗?代码中使用的字段名有错误,并且代码中的一个或多个字段名与数据库中的字段名不相同。未定义的索引错误是由于以下原因造成的。表名candidate_info字段candidateid、candidatename、position、numberofvotesOk,在您写入echo“”的第22行$行['CandidateName']。""; 您应该将echo写为“”$行['candidatename']。""; 相反因为正如您所看到的,名称是您在代码中用驼峰大小写的,但在数据库中用小写。每次尝试访问不存在的数组索引时,都会出现未定义的索引,在您的情况下,CandidateName不存在。我检查了这段代码,它正常工作。问题是在发布表单时没有$row数组。因此,您必须将带有隐藏字段的id发送到页面。这是我做的让你的代码工作。先生,我尝试了代码,但它不工作。我得到一个未定义的错误index@AlexiusjoeCoronel你能给我看看你的数据库结构吗?代码中使用的字段名有错误,并且代码中的一个或多个字段名与数据库中的字段名不相同。未定义的索引错误是由于以下原因造成的。表名candidate_info字段candidateid、candidatename、position、numberofvotesOk,在您写入echo“”的第22行$行['CandidateName']。""; 您应该将echo写为“”$行['candidatename']。""; 相反因为正如您所看到的,名称是您在代码中用驼峰大小写的,但在数据库中用小写。每次尝试访问不存在且CandidateName不存在的数组索引时,都会出现未定义索引。
<html>
<center>
<font size="2" face = "century gothic">
<?php
$con=mysqli_connect("localhost","root","","election2016");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM candidate_info");
echo "<table border='1'>
<tr>
<th>Candidate Name</th>
<th>Position</th>
<th>Vote</th>
<th>Number of Votes</th>
</tr>";
while ($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['CandidateName'] . "</td>";
echo "<td>" . $row['Position'] . "</td>";
echo "<td><input type='radio' name='candidateid' value='".$row['candidateid']."' >";
echo "<td>" . $row['NumberofVotes'] . "</td>";
$candidateid=$row['candidateid'];
}
echo "</table>";
mysqli_close($con);
?>
<br>
<br>
<form method = "post" action = "<?php $_PHP_SELF ?>">
<input type="hidden" name="candidateid" value="<?php echo $candidateid;?>">
<input name = "update" type = "submit" id = "update" value = "update">
</form>
</center>
</font>
</html>
<?php
if(isset($_POST['update'])) {
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$candidateid = $_POST['candidateid'];
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$candidateid = $_POST['candidateid'];
$sql = "UPDATE candidate_info SET numberofvotes = 1 WHERE candidateid = '$candidateid'" ;
mysql_select_db('election2016');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";
mysql_close($conn);
}
?>