单独为数据库字段使用连接变量

时间:2015-02-07 12:55:51

标签: php concatenation

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

我有一个PHP页面,它从MySQL数据库中的表中获取场所列表和它的城镇/城市,然后我将其连接起来填充下拉列表,例如每个<选项>将显示“[场地],[城镇/城市]”。

我想要做的是当用户选择其中一个选项时,我想将[场地]和[城镇/城市]作为单独的字段存储在MySQL数据库的另一个表中。

我真的很感激任何帮助。

2 个答案:

答案 0 :(得分:1)

可能需要更多细节。例如,您是否需要知道如何在数据库中插入记录?或者您在获取选项标记的值时遇到问题?

但据我所知:

首先记得设置选项标签的值属性:

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

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

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

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

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

答案 1 :(得分:0)

我认为最好的方法是将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>