首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >学生一旦被分配到公司,如何减去空缺的数字?

问学生一旦被分配到公司,如何减去空缺的数字?
EN

Stack Overflow用户
提问于 2014-02-05 07:26:43
回答 1查看 96关注 0票数 0

情景:学生被分配到基于部门的公司。每家公司都有不同的空缺数目。A公司的空缺号是4。分配给学生的公司是由管理部门从下拉列表中选出的。

问题:一旦一名学生被分配到A公司,如果该公司的空缺是4,那么如何减去1。也就是说,一旦学生被分配,它应该显示为3。

代码语言:javascript
复制
      <?php
$result3 = mysqli_query($con, "SELECT job_title, no_of_vacancy FROM job_details WHERE jobscope = 'Information Technology' ORDER BY `job_title` ASC;");
?>
<table cellspacing='0'>
  <tr>
    <th>Company Name</th>
    <th>Vacancy</th>
  </tr>
<?php
  while ($row3 = mysqli_fetch_assoc($result3)) {
    echo "<tr>";
    echo "<td bgColor=white>" . $row3['job_title'] . "</td>";
    echo "<td bgColor=white>" . $row3['no_of_vacancy'] . "</td>";
    echo "</tr>";
  }
?>
</table>
<?php
$result5 = mysqli_query($con, "SELECT company FROM student_details WHERE jobscope1 = 'Information Technology';");
$row5 = mysqli_fetch_assoc($result5);
$assigned = $row5['company'];  

if(isset($_POST['ddl']))
        {
            foreach($_POST['ddl'] as $index => $val2 ) 
            {
            $result4 = mysqli_query($con, "UPDATE `job_details` SET `no_of_vacancy`= `no_of_vacancy` - 1 
                      WHERE `job_title` = '" . $val2 . "';");

            }
        } 



}
?>

建议编辑后:

在提交下拉选项之前

代码语言:javascript
复制
Company Name           |Vacancy  
__________________________________
Commonwealth  Pte Ltd  | 3
Delloitte              | 1
Oak 3 Films Pte Ltd    | 3
Promedia Directories   | 2

提交下拉选项后

例如

我选择2名学生分配给联邦,1名学生被分配到德勤,2名学生被分配到橡树,1名学生被分配到Promedia。

所以正确的表格应该显示

代码语言:javascript
复制
Company Name           |Vacancy  
__________________________________
Commonwealth  Pte Ltd  | 1
Delloitte              | 0
Oak 3 Films Pte Ltd    | 1
Promedia Directories   | 1

然而,这表明

代码语言:javascript
复制
Company Name           |Vacancy  
__________________________________
Commonwealth  Pte Ltd  | 1
Delloitte              | 0
Oak 3 Films Pte Ltd    | 3
Promedia Directories   | 2

怎么啦??只有顶部的两排受到影响。为什么第三排和最后一排也没有受到影响?

EN

回答 1

Stack Overflow用户

发布于 2014-02-05 07:45:22

尝试移除字段名周围的背面(`)。

所以,

代码语言:javascript
复制
UPDATE `job_details` 
              SET `no_of_vacancy`= `no_of_vacancy` - 1 
              WHERE `jobscope` = 'Information Technology' 
              AND `job_title` = '" . $assigned . "';

变成:

代码语言:javascript
复制
UPDATE job_details 
              SET no_of_vacancy= no_of_vacancy - 1 
              WHERE jobscope = 'Information Technology' 
              AND job_title = '" . $assigned . "';

这样,mysql就知道您是在引用一个字段(no_of_vacancy),并从其当前值中减去1。

Backticks允许您引用与保留的mysql单词相同的字段名。例如,一个名为where的表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21571081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档