Php 使用表单更新MySQL数据库
我正在尝试创建一个表单,允许用户从下拉框中选择一个字段,然后更改当前写入该字段的内容 我的当前代码允许我查看下拉列表,选择要更改的字段,然后在框中输入新文本。但当我单击“更新”时,什么也没发生Php 使用表单更新MySQL数据库,php,mysql,Php,Mysql,我正在尝试创建一个表单,允许用户从下拉框中选择一个字段,然后更改当前写入该字段的内容 我的当前代码允许我查看下拉列表,选择要更改的字段,然后在框中输入新文本。但当我单击“更新”时,什么也没发生 <?php mysql_connect("", "", "") or die(mysql_error()); mysql_select_db("") or die(mysql_error()); $query = "SELECT * FROM news_updates"; $result=my
<?php
mysql_connect("", "", "") or die(mysql_error());
mysql_select_db("") or die(mysql_error());
$query = "SELECT * FROM news_updates";
$result=mysql_query($query) or die("Query Failed : ".mysql_error());
$i=0;
while($rows=mysql_fetch_array($result))
{
$roll[$i]=$rows['Text'];
$i++;
}
$total_elmt=count($roll);
?>
---------------------------------------------------------Now I have the form
<form method="POST" action="">
Select the news post to Update: <select name="sel">
<option>Select</option>
<?php
for($j=0;$j<$total_elmt;$j++)
{
?><option><?php
echo $roll[$j];
?></option><?php
}
?>
</select><br />
Text Field: <input name="username" type="text" /><br />
<input name="submit" type="submit" value="Update"/><br />
<input name="reset" type="reset" value="Reset"/>
</form>
-----------------------------------------------Now I have the update php
<?php
if(isset($_POST['submit']))
{
$username=$_POST['username'];
$query2 = "UPDATE news_updates SET username='$username' WHERE rollno='$value'";
$result2=mysql_query($query2) or die("Query Failed : ".mysql_error());
echo "Successfully Updated";
}
?>
---------------------------------------------------------现在我有表格了
选择要更新的新闻帖子:
选择
文本字段:
-----------------------------------------------现在我有了php的更新
嗯,您似乎缺少$value
部分。对于最后一部分,类似的操作应该可以:
<?php
if(isset($_POST['submit']))
{
$username = mysql_real_escape_string($_POST['username']);
$value = mysql_real_escape_string($_POST['sel']);
$query2 = "UPDATE news_updates SET username='$username' WHERE rollno='$value'";
echo $query2; //For test, to see what is generated, and sent to database
$result2=mysql_query($query2) or die("Query Failed : ".mysql_error());
echo "Successfully Updated";
}
?>
您需要更改此设置
<?php
for($j=0;$j<$total_elmt;$j++)
{
?><option><?php
echo $roll[$j];
?></option><?php
}
对此
<?php
for($j=0;$j<$total_elmt;$j++)
{
?><option value="<?php echo $roll[$j];?>"> <?php echo $roll[$j];?></option> <?php
}
$query2 = "UPDATE news_updates SET username='$username' WHERE rollno='".$_POST['sel']."'";
N.B.:这里我假设$\u POST['sel']
具有用户从下拉菜单中选择的值,因为我找不到与$value
对应的任何内容。首先,尝试向选项添加值,如下所示:
for($j=0;$j<$total_elmt;$j++)
{
?>
<option value="<?php echo $roll['id']; ?>"><?php echo $roll['option_name']; ?></option>
<?php
}
这应该可以帮到你了警告:。$value
从何而来?问题解决后请不要删除。它可能仍然会帮助其他有类似问题的人,因此我已回滚删除。停止编辑问题文本。如果你想删除这个问题,那么就这样做。@bluedog这是不可能的,因为已经有了经过投票的答案。然而,我投票通过了。@JanDvorak:是的,我忘了。谢谢。不可能,这不会解决op问题,他还遗漏了其他东西。我已经添加了这些更改,代码仍然可以正常工作,没有错误。但“更新”和“重置”按钮仍然无效:(@Fabio:我的代码中还有一个错误…我相应地编辑了我的答案…我想这应该可以让它正常工作。我对更新字段进行了更改,但这并不能解决问题。嗯,这个问题可能与rollno有关吗?我的代码中没有其他地方。安全性对我来说不是一个主要问题。它只是一个我在美国的网站唱歌学习。我添加了你的代码,但“重置和更新”按钮仍然没有任何作用:(您可以将生成的html代码添加到问题中吗?例如,在打开页面时使用view source,并在您的问题中复制/粘贴html代码?以下是页面源代码信息,由于Limit一词,我不得不稍微减少选项字段中的文本。请将其添加到您的问题中,或使用jsfiddle.net
for($j=0;$j<$total_elmt;$j++)
{
?>
<option value="<?php echo $roll['id']; ?>"><?php echo $roll['option_name']; ?></option>
<?php
}
$value = $_POST['sel']; // add any desired security here