我的数据库中有一个名为“Cities”的预定义城市列表。
id name
1 City1
2 City2
3 City3
4 City4
用户需要以逗号分隔格式在输入字段中添加他访问过的城市,因此如果“城市”表中存在,则需要逐个检查他在表单中添加的所有城市。如果它存在,则在“city_visited”表中的“城市”中插入用户ID和城市ID,如果它不存在,则先将其插入“城市”,然后插入“city_visited”表。
我可以通过爆炸获得城市
$city_list = "city1,city2,city3,city4,city5,city6";
$city_visited = explode(",", $city_list);
$city_visited[0];
$city_visited[1];
我如何知道用户输入的城市数量,然后检查“城市”表格中的任何现有数据,然后在“city_visited”表格中添加城市的ID。
id city_id user_id
1 1 1
2 2 1
3 3 1
4 4 1
答案 0 :(得分:0)
不确定这是否是最佳解决方案,但您可以尝试从这个想法开始:
在name
的{{1}}列上创建一个索引,并确保该字段为Cities
,当您在插入数据库之前拆分unique
时,make每个$city_list
大写的项目。
所以在你的表中你会有
$city_visited
这样,db将确保id name
1 CITY1
2 CITY2
3 CITY3
4 CITY4
字段是唯一的,因为如果您尝试插入另一个时间City1,则索引会启动并产生重复键错误。
唯一遗漏的是,如果有人输入错误拼写的城市名称,但我认为这是不可避免的。
希望这个帮助