SQL - 获取具有相同 ID 的所有行
SQL - Get all rows with same ID
我正在尝试获取具有相同 ID 的所有行,
这是 table:
的示例
Curs_ID Cursistnr payed
Excel 2 500
Internet 3 100
C# 2 200
我想从 table 中得到的是 Cursistnr
为 2 的所有内容
所以我需要的是其中的 2 行:
Excel 2 500
C# 2 200
编辑:
好的,让我问一个不同的问题。
这是 table:
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);
我觉得跟sqltable,
有关系
如果我尝试 SELECT * FROM c_regel 我只会得到第一行。
不知道这里有什么问题
SELECT Curs_ID, payed
FROM TAB -- insert your table
WHERE Cursistnr = 2
只需添加基本的 WHERE
语句
SELECT Curs_ID, Cursistnr, payed
FROM yourtable
WHERE Cursistnr = 2
我很确定 $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()
直到它 returns false 或一个空数组(取决于你的数据库的内部工作 class)。
我正在尝试获取具有相同 ID 的所有行, 这是 table:
的示例Curs_ID Cursistnr payed
Excel 2 500
Internet 3 100
C# 2 200
我想从 table 中得到的是 Cursistnr
为 2 的所有内容
所以我需要的是其中的 2 行:
Excel 2 500
C# 2 200
编辑:
好的,让我问一个不同的问题。 这是 table:
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);
我觉得跟sqltable,
有关系如果我尝试 SELECT * FROM c_regel 我只会得到第一行。 不知道这里有什么问题
SELECT Curs_ID, payed
FROM TAB -- insert your table
WHERE Cursistnr = 2
只需添加基本的 WHERE
语句
SELECT Curs_ID, Cursistnr, payed
FROM yourtable
WHERE Cursistnr = 2
我很确定 $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()
直到它 returns false 或一个空数组(取决于你的数据库的内部工作 class)。