我正在尝试使用PHP编辑值和/或向表选项添加更多值,这是一个屏幕截图:
我开始使用以下内容,现在我试图了解如何提取与form_field_id相关联的数据,在此示例中为5.
<?php
require_once("config/database.php");
$con = mysql_connect($config["db_server"],$config["db_user"],$config["db_pass"]);
mysql_select_db($config['db_name'], $con);
// get value of id that sent from address bar
$id=$_GET['form_field_id'];
// Retrieve data from database
$sql="SELECT * FROM options WHERE id='$form_field_id'";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);
?>
<form name="form1" method="post" action="updated_values.php">
<input name="name" class="form-control" type="text" id="name" value="<? echo $rows['value']; ?>">
<input name="name" class="form-control" type="text" id="name" value="<? echo $rows['value']; ?>">
<input name="name" class="form-control" type="text" id="name" value="<? echo $rows['value']; ?>">
<input name="name" class="form-control" type="text" id="name" value="<? echo $rows['value']; ?>">
<input name="name" class="form-control" type="text" id="name" value="<? echo $rows['value']; ?>">
<input name="name" class="form-control" type="text" id="name" value="<? echo $rows['value']; ?>">
<button type="submit" /> Update </button>
</form>
以下是我建议后添加的更新代码:
<?php
require_once("config/database.php");
$con = mysql_connect($config["db_server"],$config["db_user"],$config["db_pass"]);
mysql_select_db($config['db_name'], $con);
// get value of id that sent from address bar
$id=$_GET['form_field_id'];
// Retrieve data from database
$sql="SELECT * FROM options WHERE id='$id'";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);
?>
<form name="form1" method="post" action="updated_values.php">
<?php
while($rows=mysql_fetch_array($result))
{
?>
<input name="name[]" class="form-control" type="text" id="name" value="<? echo $rows['value']; ?>">
<?php } ?>
<button type="submit" /> Update </button>
</form>
答案 0 :(得分:1)
您的查询中有错误,您传递的是您未分配的变量,因此请更改第一个查询,如下所示
$sql="SELECT * FROM options WHERE id='$id'";
//^here you used a wrong variable
您还需要循环抛出记录以打印所有记录,因此请按以下步骤进行更改
<form name="form1" method="post" action="updated_values.php">
<?php
while($rows=mysql_fetch_array($result))
{
?>
<input name="name[]" class="form-control" type="text" id="name[]" value="<? echo $rows['value']; ?>">
<?php } ?>
<button type="submit" /> Update </button>
</form>
请注意,我还更改了输入的名称,并添加了[]
,因此您将获得一个name
输入数组。
作为旁注,我会说你的代码非常容易受到mysql注入,你应该切换到mysqli
或PDO
并使用准备好的语句来避免任何问题。
答案 1 :(得分:0)
您的代码看起来正确。你只需要改变这个:
$sql="SELECT * FROM options WHERE id='$form_field_id'";
到此:
$sql="SELECT * FROM options WHERE form_field_id='$id'";
你所有的错误就是变量和列名,并且为了显示你必须正确遍历所有行的结果。