【问题标题】:How can i get one id result and add it to another in a mysql table?如何获得一个 id 结果并将其添加到 mysql 表中的另一个?
【发布时间】:2020-07-01 10:20:23
【问题描述】:

如何将所有数据一起记录在一个表中?

我希望将单个行中的值加起来为一个。并将值放入变量中。

我可以用什么来代替下面的代码来获取表中的所有 id 而不是一个?

  if(isset($_GET['ide'])){
 $coode = $_GET['ide'];

这样一旦我得到所有的 id,我就可以在下面进行查询...

$products = $db->query("SELECT e1,e2 FROM eyfstb WHERE specialnum='$coode'");
 while($row = $products->fetch_assoc()){
 $e1view = $row["e1"]; $e2view = $row["e2"];
}

一旦查询完成,我希望能够将它们存储在如下变量中

$final = (e1,e2 of id1) + (e1,e2 of id2) + (e1,e2 of id3) + (e1,e2 of id4);

罚款是 5 好是4 公平是 3 我的 e1 很好,等于 5 我的 e2 很好,等于 4

当我添加它时制作 9。 但我想获取表中的所有记录行

目前我只能从 url $coode 获取一个学生的详细信息,但我想从一个表中获取所有学生的详细信息并能够添加结果数据。

表结构

id  |   e1    |   e2   |
---------------------------
1   |  fine   |  good  |
2   |  good   |  good  |
3   |  fair   |  fine  |

【问题讨论】:

  • 这能回答你的问题吗? How to add column values in mysql
  • 它给出了一个见解,但不是真的,在我的数据库中,e1 很好,很好 =5 e2 很好,4 很好。
  • 请显示您的表结构。
  • 好的,我现在将其包括在内。 @kumar
  • 我已经添加了

标签: php mysql


【解决方案1】:

更好的方法是将这样的数据库参数存储为整数。它在数学运算或比较方面产生的问题更少。

但如果你不能重构它,你应该将每个值映射到它们的等效数字。

function mapDbValue(string $value): int {
  switch ($value) {
    case 'fine': return 5;
    case 'good': return 4;
    case 'fair': return 3;
  } 
}

现在在您的 while 循环映射值中添加它。

$final = 0;
while (...) {
  $final += mapDbValue($row['e1']) + mapDbValue($row['e2']);
}

【讨论】:

  • 是的,这很棒,但我希望能够为所有表中的成员获取此记录并将他们的最终得分加在一起。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-14
  • 1970-01-01
相关资源
最近更新 更多