Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用表单更新MySQL数据库_Php_Mysql - Fatal编程技术网

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