php 从政党名单中添加某个位置的候选人的限制[已关闭]

b1zrtrql  于 12个月前  发布在  PHP
关注(0)|答案(1)|浏览(79)

已关闭,此问题需要details or clarity。它目前不接受回答。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。

关闭7天前。
此帖子6天前编辑并提交审核,未能重新打开帖子:

需要细节或清晰度通过editing this post添加细节并澄清问题。

Improve this question
我正在使用PHP创建一个Web应用程序(投票选举)。我是Stack Overflow的新手。我有一个关于如何编写我需要的确切的SQL查询的问题。
如何限制或防止添加候选人,如果该职位是没有插槽或可用?
例如,当我在列表中选择一个团队列表时,第二个列表(位置)将显示可用和不可用的插槽或位置。以防止增加更多的候选人的座位,一定的立场。
下面是我使用的tbPositions和tbPartylist的数据库表:

TbPartylist
party_id | partyname | desc
TbPositions
position_id | posname | max_candidate

这是我目前的项目:

这就是我想要实现的:

0s0u357o

0s0u357o1#

创建一个PHP脚本,根据从下拉列表中选择的参与方列表加载可用职位。
对于每个可用职位,从数据库中检索已为该职位添加的候选人计数。
将候选者的计数与该位置的max_candidate值进行比较。
如果任何职位的候选人计数超过允许的最大值,请禁用在下拉列表中为该职位添加候选人的选项,或显示消息通知用户没有可用的插槽
示例:

// Assuming you have already retrieved the selected party list ID from the dropdown
$selectedPartyListID = $_POST['partylist_id'];

//Define maximum candidates
$maxCandidate = 2;

// Query to retrieve available positions for the selected party list
$query = "SELECT position_id, posname FROM TbPositions WHERE party_id = $selectedPartyListID";

$result = $dbConnection->query($query);

if ($result) {
    // Loop through available positions
    while ($row = $result->fetch_assoc()) {
        $positionID = $row['position_id'];
        $positionName = $row['posname'];

        // Query to count candidates for this position
        $candidateCountQuery = "SELECT COUNT(*) as candidate_count FROM candidates WHERE position_id = $positionID";

        $candidateCountResult = $dbConnection->query($candidateCountQuery);

        if ($candidateCountResult) {
            $candidateCountRow = $candidateCountResult->fetch_assoc();
            $candidateCount = $candidateCountRow['candidate_count'];

            // Compare with max_candidate
            if ($candidateCount < $maxCandidate) {
                // Add this position as an option in your HTML dropdown
                echo "<option value='$positionID'>$positionName</option>";
            } else {
                // If max candidates are reached for this position, skip adding it to the dropdown or display a message
                echo "<option disabled>$positionName (No Slots Available)</option>";
            }
        } else {
            // Handle database query error
        }
    }
} else {
    // Handle database query error
}

相关问题