【问题标题】:SQL - Get all rows with same ID [closed]SQL - 获取具有相同 ID 的所有行 [关闭]
【发布时间】:2015-09-02 10:25:56
【问题描述】:

我正在尝试获取具有相同 ID 的所有行, 这是表格的一个例子:

Curs_ID     Cursistnr   payed
Excel       2           500
Internet    3           100
C#          2           200

我想摆脱的就是Cursistnr 为 2 的所有内容 所以我需要的是 2 行:

Excel       2           500
C#          2           200

编辑:

好吧,让我问不同的问题。 这是桌子:

curs_code|Cursistnr|cijfer|payed
Internet     50      5     2000.00
Internet     88      7     2000.00
Word         50      9     3300.00
Word         88      9     3300.00
Niam         88      6     850.00

例如,我尝试使用 cursistnr 88 从每一行获取所有内容 所以:

互联网, 88 , 7, 2000.00 尼亚姆, 88, 6, 850.00 字, 88, 9, 3300.00

如果我尝试 SELECT * FROM c_regel WHERE cursistnr='$id'

我只得到:

array (size=8)
'curs_code' => string 'Internet' (length=8)
0 => string 'Internet' (length=8)
'cursistnr' => string '88' (length=2)
1 => string '88' (length=2)
'cijfer' => string '7' (length=1)
2 => string '7' (length=1)
'betaald' => string '2000.00' (length=7)
3 => string '2000.00' (length=7)

我正在使用的 php 代码:

function cursusDone($magazijn, $id){
  $sql = "SELECT curs_code FROM c_regel WHERE cursistnr='$id'";
  $query = $magazijn->query($sql);
  return $query->fetch();
}

$done = cursusDone($magazijn,$id);
var_dump($done);

我觉得跟sql表有关系,

如果我尝试 SELECT * FROM c_regel 我只会得到第一行。 不知道这里有什么问题

【问题讨论】:

  • 这不是一个 write-me-the-code 服务,告诉我们你尝试了什么,什么没用,这是非常基本的 SQL 任务。
  • 你真的在问这个吗?
  • 我编辑了我的问题
  • 你的最后一点看起来像一个 php var_dump。请显示一些php代码
  • 好了,添加了我的 php 代码

标签: mysql sql phpmyadmin


【解决方案1】:

我很确定 $query->fetch(); 只会获取结果的第一行。

如果您可以尝试cursusDone 函数的修改版本:

function cursusDone($magazijn, $id){
  $sql = "SELECT curs_code FROM c_regel WHERE cursistnr='$id'";
  $query = $magazijn->query($sql);
  var_dump($query->fetch());
  var_dump($query->fetch());
  //return $query->fetch();
}

这应该将结果集的前两行作为数组转储输出。

如果我是对的,您可以遍历 $query->fetch(),直到它返回 false 或空数组(取决于您的数据库类的内部工作)。

【讨论】:

  • 我已将 $query->fetch() 更改为 $query->fetchAll。这行得通,当你告诉我 fetch() 只获取第一行时,我立即想到了 fetchAll,谢谢你的帮助!
【解决方案2】:
SELECT Curs_ID, payed
FROM TAB -- insert your table
WHERE Cursistnr = 2

【讨论】:

    【解决方案3】:

    只需添加一个基本的WHERE 语句

    SELECT Curs_ID, Cursistnr, payed
    FROM yourtable
    WHERE Cursistnr = 2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-13
      • 2017-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多