将输入限制为sql表的某个数字

时间:2014-03-24 16:28:46

标签: php sql

我有一个SQL数据库,其中有一系列不同的表。基本上,我正在创建一个考试日并为其添加考试。

示例:

(考试)考试1

(考试)物理,生物,化学,P.E

这两者都是相互关联的。

现在目前这是如何工作的,当我在考试中创建考试时,我可以添加无限量的考试,但在现实生活中显然没有意义。

所以我想要做的是在创建可以限制可以输入的考试数量的考试时有一些输入。

  • 例如,如果我创建考试2并将输入限制为3,则只能添加3个考试。

我试图在网上找到一些东西但似乎无法到达任何地方,有人可以帮忙吗?

感谢。

2 个答案:

答案 0 :(得分:1)

在您的表格中添加另一列名为mostExams

的列

在创建新考试时,

$db = new PDO('mysql:host=localhost;dbname=test', $user, $pass);

$stmnt = $db->query("SELECT `mostExams` FROM `exams` WHERE `classId`='" . $thisClassId . "'");

while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $mostExams = $row['mostExams'] ;
}

//php to only allow $mostExams number of exams.

$stmnt = $db->query("SELECT `id` FROM `exams` WHERE `classId`='" . $thisClassId . "'");
if ($stmnt->rowCount() >= $mostExams){
    echo 'You cannot add any more exams.  Change mostExams in the SQL database to allow more.';
}else{
    //HTML form to add an exam

}

您可能需要添加一些代码来检查并查看您是否已经有一些考试并从大多数考试中减去考试。你只需要在盒子外思考一下吧!

答案 1 :(得分:0)

我不太了解你的问题,但在这里:

您可以在php中使用sql来计算来自examstable的考试数量: ' SELECT COUNT(*)FROM examstable;' 然后在PHP中: ' if($ no_exams> 3){echo"不能再添加考试。"} 否则将考试插入数据库。'