如果用户选择“全部”,如何从所有选项中检索数据

时间:2013-02-03 18:19:45

标签: php mysql mysqli

根据从question下拉菜单中选择的选项,下面有一个mysqli / php代码显示结果:

$selectedquestionqry = "
SELECT
QuestionNo
FROM
Question
WHERE
(QuestionId = ?)
";

global $mysqli;
$selectedquestionstmt=$mysqli->prepare($selectedquestionqry);
// You only need to call bind_param once
$selectedquestionstmt->bind_param("i",$_POST["question"]);
// get result and assign variables (prefix with db)
$selectedquestionstmt->execute(); 
$selectedquestionstmt->bind_result($selQuestionNo);
$selectedquestionstmt->store_result();
$selquestionnum = $selectedquestionstmt->num_rows();   


 while ($selectedquestionstmt->fetch()) {

if($_POST["question"] === '0') {
    echo "<p>All Questions - Total:(" . $selquestionnum . ")</p>" . PHP_EOL;
}else if($_POST["question"] !== '0') {
echo "<p><strong>Questions: </strong>" . $selQuestionNo . "</p>" . PHP_EOL;
}
}

DROP DOWN MENU:

 <select name="student" id="studentsDrop">
    <option value="0">All</option>
    <option value="23">Jay Hart</option>
    <option value="32">Bubba Wright</option>
    </select>

我的问题是如何才能获得它,以便如果用户选择了“0”,那么它将能够从question下拉菜单中显示的数据库中选择所有问题?< / p>

我问这个的原因是因为在我的回声else if($_POST["question"] !== '0') { echo "<p><strong>Questions: </strong>" . $selQuestionNo . "</p>" . PHP_EOL; }中,当我选择All选项时没有任何回声,这让我觉得它没有显示回声由于这个。如果我从下拉菜单中选择一个问题,它就能输出它的回声。

2 个答案:

答案 0 :(得分:2)

您只需要修改您的查询:

if($_POST["question"] === '0') {
    $selectedquestionqry = "SELECT QuestionNo FROM Question";
} else {
    $selectedquestionqry = "SELECT QuestionNo FROM Question WHERE (QuestionId = ?)";
}

答案 1 :(得分:0)

您需要更改查询以根据发布的值WHERE删除'0'条件。之后您不必更改任何代码,因为您已经在循环,但是您应该在循环外显示Total。