好吧,我的大脑卡住了,我找不到方法来完成我想要的,所以我在寻求你的帮助。
我有一个简单的表格,包括:
[input = "text"][input = "text"][input = "text"][label] [input = "checkbox"][input = "checkbox"][input = "checkbox"][input = "checkbox"][input = "checkbox"][input = "checkbox"]
技能列表就是你所能想象的。
现在,我创建了一个包含两个表的数据库
表1:[users]
表2:[skills]这个表是一个参考表
现在,我想知道如何才能拯救用户的技能和在哪里?
我想过的解决方案之一是创建第三个表。
表3:[usersSkills]
但问题是我不知道-and,我不知道--如何在表单处理过程中保存这个表中的用户技能!,而用户还没有ID 。
我所做的是对的吗?还是有更好的方法?
我真的很感激你的详细帮助。
P.S.1:表格和程序在同一页内完成。register.php和我正在使用mySQLi
更新
以下是我在页面中所做的工作:
<form action="index.php" method="POST" name="frmInput">
Username: <input type="text" name="username" size="30"><br />
Skills:
<ul>
<li>Skill 1: <input type="checkbox" name="skills[]" value="1" /></li>
<li>Skill 2: <input type="checkbox" name="skills[]" value="2" /></li>
<li>Skill 3: <input type="checkbox" name="skills[]" value="3" /></li>
<li>Skill 4: <input type="checkbox" name="skills[]" value="4" /></li>
<li>Skill 5: <input type="checkbox" name="skills[]" value="5" /></li>
</ul>
<input type="submit" value="submit">
</form>
<?php
if(isset($_POST['username'])) {
$username = $_POST['username'];
$query = "INSERT INTO `users` (`username`) VALUES ('$username')";
$run = mysqli_query($link, $query);
if($run)
{
$user_id = mysqli_insert_id();
foreach ($_POST['skills'] as $skill)
{
$query = "INSERT INTO `users_skills` (`user_id`,`Skill_id`) VALUES ({$user_id},{$skill})";
$run = mysqli_query($link, $query);
}
}
}
?>更新:现在工作正常:)
这是工作代码,我张贴它供将来参考,如果有人需要提示,请注意,这个代码不是一个完整的或安全的代码,它只是为了帮助和告诉你的方向。
<form action="index.php" method="POST" name="frmInput">
Username: <input type="text" name="username" size="30"><br />
Skills:
<ul>
<li>Skill 1: <input type="checkbox" name="skills[]" value="1" /></li>
<li>Skill 2: <input type="checkbox" name="skills[]" value="2" /></li>
<li>Skill 3: <input type="checkbox" name="skills[]" value="3" /></li>
<li>Skill 4: <input type="checkbox" name="skills[]" value="4" /></li>
<li>Skill 5: <input type="checkbox" name="skills[]" value="5" /></li>
</ul>
<input type="submit" value="submit">
</form>
<?php
if(isset($_POST['username'])) {
$username = $_POST['username'];
$query = "INSERT INTO `users` (`username`) VALUES ('$username')";
$run = mysqli_query($link, $query);
if($run == true)
{
$user_id = mysqli_insert_id($link);
// echo $user_id;
foreach($_POST['skills'] as $skill)
{
$query = "INSERT INTO `users_skills` (`user_id`,`Skill_id`) VALUES ({$user_id},{$skill})";
$run = mysqli_query($link, $query);
}
}
}
?>谢谢你的帮助..。
发布于 2014-03-21 14:46:49
好的,当用户没有id时,您不会保存。首先插入用户,得到它,然后插入技巧。
您的HTML应该如下所示:
... user data ...
<input type="checkbox" name="skills[]" value="1" /> Skill 1
<input type="checkbox" name="skills[]" value="2" /> Skill 2
<input type="checkbox" name="skills[]" value="3" /> Skill 3
<input type="checkbox" name="skills[]" value="4" /> Skill 4
<input type="checkbox" name="skills[]" value="5" /> Skill 5然后在PHP中执行如下操作:
if (query("INSERT INTO users ...")) {
$user_id = insert_id(); //with mysql it's mysqli_insert_id(), depeneds what you use to insert
foreach ($_POST["skills"] as $skill) {
//escape $skill with mysqli escape, or use as parameter
query("INSERT INTO skills (user,skill) values ({$user},{$skill})");
}
}显然,你需要调整这个来适应你的情况,但我希望这能让你的想法朝着正确的方向发展。
让我知道你的想法。
https://stackoverflow.com/questions/22561818
复制相似问题