Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/MYSQL两个表与第三个表链接_Php_Mysql - Fatal编程技术网

PHP/MYSQL两个表与第三个表链接

PHP/MYSQL两个表与第三个表链接,php,mysql,Php,Mysql,新的PHP和mysql,我已经阻止了几天的问题了。 我有一个表“persones”,其中查找我的用户信息(id、nom、prenom…),还有一个表projets,其中包含我的项目信息(id、nom、description…) 我还有第三个表项目人员(id,id\u projet,id\u personne) 我正在寻找一种方法来连接一个或多个人到一个或多个项目 我在网上搜索过,但我没有找到与我的问题相对应的答案 我尝试了几种解决方案(包括一种将我所有的人与我所有的项目联系起来的解决方案),但不

新的PHP和mysql,我已经阻止了几天的问题了。 我有一个表“persones”,其中查找我的用户信息(id、nom、prenom…),还有一个表projets,其中包含我的项目信息(id、nom、description…)

我还有第三个表
项目人员(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");
}