PHP/MySQL-停止运行相同查询的Foreach

PHP/MySQL-停止运行相同查询的Foreach,php,mysql,if-statement,foreach,Php,Mysql,If Statement,Foreach,我一直在尝试创建一个投票系统,该系统对数据库运行查询,如果找到匹配项,则不包含该答案 这是一个投票系统,当用户在投票中投票时,它将pollid和userid存储在一个数据库表中,当用户再次访问页面时,会在该数据库表中检索到它们,因此不会显示他们以前投票的投票 我会尽力解释,我发现很难理解自己 在my Pollsdone中,轮询和完成轮询的用户ID表包含2行2列 这两行是: 波利德 用户ID pollsdone的两列是Userid,这无关紧要: 26,用户ID 76,用户ID SQL: 当我使用:

我一直在尝试创建一个投票系统,该系统对数据库运行查询,如果找到匹配项,则不包含该答案

这是一个投票系统,当用户在投票中投票时,它将pollid和userid存储在一个数据库表中,当用户再次访问页面时,会在该数据库表中检索到它们,因此不会显示他们以前投票的投票

我会尽力解释,我发现很难理解自己

在my Pollsdone中,轮询和完成轮询的用户ID表包含2行2列

这两行是: 波利德 用户ID

pollsdone的两列是Userid,这无关紧要: 26,用户ID 76,用户ID

SQL:

当我使用:

foreach ($db->query($sql) as $row) {
    foreach ($db->query($completedVoteSearch) as $done) {
       if ($done['pollid'] != $row['pollid']) {
         // CREATE POLL CODE
它将对数据库运行查询,并正确选择匹配的数据库。问题是,它还会选择像44,76这样的,并显示投票结果76,即使它与76,76匹配 希望这张照片能帮助你更好地理解它:不是说我们有一场比赛!并仍然显示投票

它仍然显示民意测验,尽管它应该因为其他查询而隐藏,我该如何阻止它? 任何帮助都将不胜感激

这是我使用的代码仅供参考,没有错误,不需要“调试”

try {
                            $db = new PDO("mysql:host=$mysql_host;dbname=$mysql_db", $mysql_user, $mysql_pass);
                            $sql = "SELECT * FROM Polls";
                            $completedVoteSearch = "SELECT * FROM Pollsdone WHERE userid='10'";

                            foreach ($db->query($sql) as $row) {
                                foreach ($db->query($completedVoteSearch) as $done) {
                                    if ($done['pollid'] == $row['pollid']) {
                                        echo "We have a match!";
                                    }
                                    if ($done['pollid'] != $row['pollid']) {
                                        echo "<br/>";
                                        echo $done['pollid'] . ", ";
                                        echo $row['pollid'] . ", ";
                                        echo "<br/>";
                                        $pollid = $row['pollid'];
                                        $title = $row['title'];
                                        $type = $row['type'];
                                            if ($type == "s") {
                                                $type = "radio";
                                            } else {
                                                $type = "checkbox";
                                            }

                                        $option1 = $row['option1'];
                                        $option2 = $row['option2'];
                                        $option3 = $row['option3'];
                                        $option4 = $row['option4'];
                                        $option5 = $row['option5'];
                                        $option6 = $row['option6'];

                                        $option1vote = $row['option1vote'];
                                        $option2vote = $row['option2vote'];
                                        $option3vote = $row['option3vote'];
                                        $option4vote = $row['option4vote'];
                                        $option5vote = $row['option5vote'];
                                        $option6vote = $row['option6vote'];

                                        $option1voteColumn = "option1vote";
                                        $option2voteColumn = "option2vote";
                                        $option3voteColumn = "option3vote";
                                        $option4voteColumn = "option4vote";
                                        $option5voteColumn = "option5vote";
                                        $option6voteColumn = "option6vote";
                                    }
                                }
                            // $isCompleteSQL = "SELECT * FROM Pollsdone WHERE userid='10' ";
                            // if ()

                            if (strlen($option3) < 1  && strlen($option2) > 0) {
                                echo '<div class="userPoll">
                                    <div class="pollTitle">
                                        <h3 class="pollHeader">' . $title . ' (ID = ' . $pollid . ')</h3>
                                    </div>
                                    <div class="pollContent">
                                        <p class="pollSubTitle">Created By <a href="profile.php">Username</a></p>
                                        <form class="poll" method="POST" action="mypolls.php">
                                            <label><input type="' . $type . '" class="pollAnswer" name="'. $pollid .'" value="option1vote"><p class="pollAnswerText">' . $option1 . '</p></label><br/>
                                            <label><input type="' . $type . '" class="pollAnswer" name="'. $pollid .'" value="option2vote"><p class="pollAnswerText">' . $option2 . '</p></label><br/>
                                            <input type="submit" class="pollSubmit btn btn-default"/>
                                        </form>
                                    </div>
                                </div>';

                                if ($_POST[$pollid] . $pollid == $option1voteColumn . $pollid) {
                                    $option1vote = ($option1vote + 1);                          
                                    $voteSQL = "UPDATE Polls SET ".$option1voteColumn."='".$option1vote."' WHERE pollid='".$pollid."'";
                                    $db->exec($voteSQL);
                                }
                            }

                            if (strlen($option4) < 1  && strlen($option3) > 0) {
                                echo '<div class="userPoll">
                                    <div class="pollTitle">
                                        <h3 class="pollHeader">' . $title . ' (ID = ' . $pollid . ')</h3>
                                    </div>
                                    <div class="pollContent">
                                        <p class="pollSubTitle">Created By <a href="profile.php">Username</a></p>
                                        <form class="poll" method="POST" action="mypolls.php">
                                            <label><input type="' . $type . '" class="pollAnswer" name="'. $pollid .'"><p class="pollAnswerText">' . $option1 . '</p></label><br/>
                                            <label><input type="' . $type . '" class="pollAnswer" name="'. $pollid .'"><p class="pollAnswerText">' . $option2 . '</p></label><br/>
                                            <label><input type="' . $type . '" class="pollAnswer" name="'. $pollid .'"><p class="pollAnswerText">' . $option3 . '</p></label><br/>
                                            <input type="submit" class="pollSubmit btn btn-default"/>
                                        </form>
                                    </div>
                                </div>';
                            }

                            if (strlen($option5) < 1 && strlen($option4) > 0) {
                                echo '<div class="userPoll">
                                    <div class="pollTitle">
                                        <h3 class="pollHeader">' . $title . ' (ID = ' . $pollid . ')</h3>
                                    </div>
                                    <div class="pollContent">
                                        <p class="pollSubTitle">Created By <a href="profile.php">Username</a></p>
                                        <form class="poll" method="POST" action="mypolls.php">
                                            <label><input type="' . $type . '" class="pollAnswer" name="'. $pollid .'"><p class="pollAnswerText">' . $option1 . '</p></label><br/>
                                            <label><input type="' . $type . '" class="pollAnswer" name="'. $pollid .'"><p class="pollAnswerText">' . $option2 . '</p></label><br/>
                                            <label><input type="' . $type . '" class="pollAnswer" name="'. $pollid .'"><p class="pollAnswerText">' . $option3 . '</p></label><br/>
                                            <label><input type="' . $type . '" class="pollAnswer" name="'. $pollid .'"><p class="pollAnswerText">' . $option4 . '</p></label><br/>
                                            <input type="submit" class="pollSubmit btn btn-default"/>
                                        </form>
                                    </div>
                                </div>';
                            }

                            if (strlen($option6) < 1 && strlen($option5) > 0) {
                                echo '<div class="userPoll">
                                    <div class="pollTitle">
                                        <h3 class="pollHeader">' . $title . ' (ID = ' . $pollid . ')</h3>
                                    </div>
                                    <div class="pollContent">
                                        <p class="pollSubTitle">Created By <a href="profile.php">Username</a></p>
                                        <form class="poll" method="POST" action="mypolls.php">
                                            <label><input type="' . $type . '" class="pollAnswer" name="'. $pollid .'"><p class="pollAnswerText">' . $option1 . '</p></label><br/>
                                            <label><input type="' . $type . '" class="pollAnswer" name="'. $pollid .'"><p class="pollAnswerText">' . $option2 . '</p></label><br/>
                                            <label><input type="' . $type . '" class="pollAnswer" name="'. $pollid .'"><p class="pollAnswerText">' . $option3 . '</p></label><br/>
                                            <label><input type="' . $type . '" class="pollAnswer" name="'. $pollid .'"><p class="pollAnswerText">' . $option4 . '</p></label><br/>
                                            <label><input type="' . $type . '" class="pollAnswer" name="'. $pollid .'"><p class="pollAnswerText">' . $option5 . '</p></label><br/>
                                            <input type="submit" class="pollSubmit btn btn-default"/>
                                        </form>
                                    </div>
                                </div>';
                            }

                            if (strlen($option6) > 0) {
                                echo '<div class="userPoll">
                                    <div class="pollTitle">
                                        <h3 class="pollHeader">' . $title . ' (ID = ' . $pollid . ')</h3>
                                    </div>
                                    <div class="pollContent">
                                        <p class="pollSubTitle">Created By <a href="profile.php">Username</a></p>
                                        <form class="poll" method="POST" action="mypolls.php">
                                            <label><input type="' . $type . '" class="pollAnswer" name="'. $pollid .'"><p class="pollAnswerText">' . $option1 . '</p></label><br/>
                                            <label><input type="' . $type . '" class="pollAnswer" name="'. $pollid .'"><p class="pollAnswerText">' . $option2 . '</p></label><br/>
                                            <label><input type="' . $type . '" class="pollAnswer" name="'. $pollid .'"><p class="pollAnswerText">' . $option3 . '</p></label><br/>
                                            <label><input type="' . $type . '" class="pollAnswer" name="'. $pollid .'"><p class="pollAnswerText">' . $option4 . '</p></label><br/>
                                            <label><input type="' . $type . '" class="pollAnswer" name="'. $pollid .'"><p class="pollAnswerText">' . $option5 . '</p></label><br/>
                                            <label><input type="' . $type . '" class="pollAnswer" name="'. $pollid .'"><p class="pollAnswerText">' . $option6 . '</p></label><br/>
                                            <input type="submit" class="pollSubmit btn btn-default"/>
                                        </form>
                                    </div>
                                </div>';
                            }
                        }$db = null;

                        } catch(PDOException $e) {
                            $e->getMessage();
                        }

所以,如果我没弄错的话,您正在尝试选择用户尚未参与的投票。 您可以使用以下查询:

select * from `polls_table` 
where `pollid` NOT IN 
    (select `pollid` from `pollsdone` 
     where `user_id` = 10)

什么是44,76,什么是76,76?你想要达到的主要目标是什么?不显示用户已参与的投票?从pollid不在的轮询中选择*从polldone中选择pollid,其中user_id=10可能有效。我会试试看,然后在@U_mulder之前给你!然后我得到了错误警告:在第70行的[..loc..]中为foreach提供的参数无效。foreach是:foreach$db->query$sql as$行,sql是:$sql=SELECT*FROM Polls,其中pollid不在,SELECT pollid FROM Pollsdone,其中userid=10;不,对不起。我只是把你的SQL复制错了,它工作得很好,使用的代码也少很多。创建一个答案,你将是1!:非常感谢!
select * from `polls_table` 
where `pollid` NOT IN 
    (select `pollid` from `pollsdone` 
     where `user_id` = 10)