对数据库字段单独使用串联变量

Using concatenated variables individually for database fields

我是 Whosebug 的新手,正在寻求一些帮助。我已经尝试搜索我要问的内容,但找不到任何相关主题,所以这里是:

我有一个 PHP 页面,它获取场地列表,它是 MySQL 数据库中 table 的 town/city,然后我将其连接到填充下拉列表,例如每个

我想做的是当用户选择其中一个选项时,我想将 [venue] 和 [town/city] 作为单独的字段存储在另一个 table 中 MySQL 数据库.

非常感谢任何帮助。

可能需要更多详细信息。例如,您是否需要知道如何在数据库中插入记录?或者您是否也无法获取选项标签的值?

但据我了解:

首先记得设置option标签的value属性:

<option value="venue,town">venue,town</option>

然后提交表单后,可以对返回的字符串进行切片。 假设您将 "venue,town" 存储在名为 $str

的变量中
$results = explode(",",$str);

$results 将是一个包含两个元素的数组。 $results[0] 包含 "venue",$results[1] 包含 "town"

我不确定它有多大帮助,但你可以提供更多细节,我会回来的

我认为最好的方法是将datarecord ids(主键值)放入<option>标签的value属性中,然后在服务器端从数据库中重新查询所选id的数据。这样您的表单就不会被不需要的数据所操纵。

为了更清楚,我会像在这个简化的半伪代码中那样做:

<?php
$action = isset($_GET['action']) ? $_GET['action'] : null;

if($action == "save") {
  $id = $_POST['venue'];

  if(!empty($id)) {
    /* fetch data belonging to $id from database and then save venue and town/city
       as separate fields in another table */
  }
}

/* fetch all data for the selectbox from the db and store it in $data */
?>
<form action="?action=save" method="post">
  <select name="venue" size="1">
    /* iterate through $data and create $id and $caption */
    <option value="<?php echo $id; ?>"><?php echo $caption; ?></option>
    /* iteration end */
  </select>

  <input type="submit" value="save" />
</form>