Php 将所选选项插入表中

Php 将所选选项插入表中,php,Php,我有这段代码,我正试图将所选状态放入子类别表中。 到目前为止,它返回一个空值。我不确定这是否清楚,但我只想:从选择选项中选择一个状态并提交它。我想将选定的州名称放入我的表子类别中 enter <?php include("connect.php"); $state = $row['states']; //Select name if (isset($_POST[submit])){ $query = "INSERT INTO subcat (sub_name) VALUES ('$stat

我有这段代码,我正试图将所选状态放入子类别表中。 到目前为止,它返回一个空值。我不确定这是否清楚,但我只想:从选择选项中选择一个状态并提交它。我想将选定的州名称放入我的表子类别中

enter <?php
include("connect.php");
$state = $row['states']; //Select name
if (isset($_POST[submit])){
$query = "INSERT INTO subcat (sub_name) VALUES ('$state')";
mysql_query($query) or die(mysql_error());
}
?>
<form action="" method="post" name="form">
<?php
$sql = mysql_query("SELECT * FROM   state");
echo "<select name='states'>
<option value=''>Select a state</option>";
while ($row = mysql_fetch_assoc($sql)) {
echo "<option value='$row[id]'>$row[name]</option>";
}
echo "</select>";
?>
<input type="submit" name="submit" value="Continue" />
</form> here

输入将
$state=$row['states']
更改为
$state=$\u POST['states']

<?php

include("connect.php");    
if (isset($_POST[submit]))
{
   $state = $_POST['states']; //Select name
   $query = "INSERT INTO subcat (sub_name) VALUES ('$state')";
   mysql_query($query) or die(mysql_error());
}

?>
<form action="" method="post" name="form">
<?php
$sql = mysql_query("SELECT * FROM   state");
echo "<select name='states'>
<option value=''>Select a state</option>";
while ($row = mysql_fetch_assoc($sql)) {
echo "<option value='$row[id]'>$row[name]</option>"; // if you want to 
//get the name into table, then use like this 
//echo "<option value='$row[name]'>$row[name]</option>";  or  
//echo "<option>$row[name]</option>";
}
echo "</select>";
?>
<input type="submit" name="submit" value="Continue" />
</form>
试试这个:

enter <?php
include("connect.php");
if (isset($_POST[submit])){
$state = $_POST['states'];
$query = "INSERT INTO subcat (sub_name) VALUES ('".mysql_real_escape_string($state)."')";
mysql_query($query) or die(mysql_error());
}
?>
<form action="" method="post" name="form">
<?php
$sql = mysql_query("SELECT * FROM   state");
echo '<select name="states" id="states">
<option value="">Select a state</option>';
while ($row = mysql_fetch_assoc($sql)) {
echo '<option value="'.$row['name'].'">'.$row['name'].'</option>';
}
echo '</select>';
?>
<input type="submit" name="submit" value="Continue" />
</form> here
enter
在这里
别忘了使用mysql\u real\u escape\u字符串来防止SQL注入。我已经替换了$state=$row['states'];使用$state=$_POST['states']

我不知道你是从哪里弄来的


上面的操作将把状态名称插入数据库。

您必须使用$\u POST['states']来获取答案所选选项的值,但现在它插入了状态表中的状态id而不是名称。这是因为您将选项值作为id,如果您想要名称,则将其更改为
$row[name]
或者从SLECCT选项中删除value属性亲爱的,如果这有助于您不要忘记接受答案,那么您很受欢迎:)谢谢,伙计,现在我得到的是id而不是状态名称。如果您在表单字段中使用select,它将始终解析回值。因此,请始终将插入数据库所需的值“”输入数据库。别忘了使用mysql\u real\u escape\u字符串来防止SQL注入。并使用$\u POST从具有method=“POST”的表单中获取值。