PHP/MYSQL两个表与第三个表链接
新的PHP和mysql,我已经阻止了几天的问题了。 我有一个表“persones”,其中查找我的用户信息(id、nom、prenom…),还有一个表projets,其中包含我的项目信息(id、nom、description…) 我还有第三个表PHP/MYSQL两个表与第三个表链接,php,mysql,Php,Mysql,新的PHP和mysql,我已经阻止了几天的问题了。 我有一个表“persones”,其中查找我的用户信息(id、nom、prenom…),还有一个表projets,其中包含我的项目信息(id、nom、description…) 我还有第三个表项目人员(id,id\u projet,id\u personne) 我正在寻找一种方法来连接一个或多个人到一个或多个项目 我在网上搜索过,但我没有找到与我的问题相对应的答案 我尝试了几种解决方案(包括一种将我所有的人与我所有的项目联系起来的解决方案),但不
项目人员(id,id\u projet,id\u personne)
我正在寻找一种方法来连接一个或多个人到一个或多个项目
我在网上搜索过,但我没有找到与我的问题相对应的答案
我尝试了几种解决方案(包括一种将我所有的人与我所有的项目联系起来的解决方案),但不幸的是,我没有找到解决方案
这就是我向你求助的原因
以下是我对PHP代码的看法:
<form action=<?php echo $formActionUrl ?> method=POST>
<table>
<tr>
<td>Choisissez la ou les personnes à ajouter</td>
</tr>
<?php foreach($personnes as $pers) : ?>
<tr>
<td><?php echo $pers["nom"] . " " . $pers["prenom"] ?></td>
<td> <input type='checkbox' name='idPers<?php echo $pers["id"]?>' value="<?php echo $pers["id"]?>"> </td>
</tr>
<?php endforeach ?>
</table>
<table>
<tr>
<td>Choisissez le ou les projets à ajouter</td>
</tr>
<?php foreach($projets as $proj) : ?>
<tr>
<td><?php echo $proj["nom"]?></td>
<td> <input type='checkbox' name='idProj<?php echo $proj["id"]?>' value="<?php echo $proj["id"]?>"> </td>
</tr>
<?php endforeach ?>
</table>
<tr>
<td><input type=submit name="action" value=<?php echo $btnActionValue; ?>></td>
</tr>
</form>
if (isset($_POST["action"]) && $_POST["action"] == "add") {
$req = "INSERT INTO projetspersonnes SELECT projets.id, personnes.id FROM projets, personnes WHERE projets.id = :projets.id, personnes.id = :personnes.id;)";
$stm = $sqlQuery->prepare($req);
$postValue = $_POST;
unset($postValue["action"]);
$stm->execute($postValue);
header("location: projets_personnes.php?add=true");
}
提前感谢您的帮助。第一件事是更改您的复选框名称,您所有的复选框都有一个唯一的名称,因此很难获得选中的复选框
// for the user :
<input type='checkbox' name='idPers[]' value="<?php echo $pers["id"]?>">
// for the project :
<input type='checkbox' name='idProj[]' value="<?php echo $proj["id"]?>">
你想链接三张桌子吗?@JayBlanchard???为什么?此外,WHERE在SELECT中使用,而不是在INSERT.Well@Akina中使用,WHERE带有多个子句需要
和或或。他们用逗号分隔了两个语法不正确的子句。@FunkFortyNiner没错,逗号是语法错误。因为INSERT不必满足任何条件@AkinaThanks,所以可以工作。它只是漏掉了一点;在sql请求的末尾,但仅此而已。谢谢你很好,我只是更正了答案。如果一切正常,不要忘记验证它
if (isset($_POST["action"]) && $_POST["action"] == "add") {
foreach($_POST['idPers'] as $idPers){
foreach($_POST['idProj'] as $idProj){
$req = "INSERT INTO projetspersonnes SET id_projet = :idProj, id_personne = :idPers";
$stm = $sqlQuery->prepare($req);
$stm->bindValue(':idProj', $idProj, PDO::PARAM_INT);
$stm->bindValue(':idPers', $idPers, PDO::PARAM_INT);
$stm->execute();
}
}
header("location: projets_personnes.php?add=true");
}