SQL:获取具有相同ID的所有列记录

时间:2012-03-22 09:18:22

标签: php mysql sql select row

我对sql很新,我在写这篇文章时遇到了麻烦 我有一张这样的桌子

id   name
1   A
2   B
3   C
1   D
1   E
1   F
...

我想要一个查询,它会告诉我我给它的ID的名字...如果我要求1,我希望它返回A D E F 我在PHP中试过这个:

$result3 = mysql_query("SELECT name FROM table WHERE id='1'", $link);

    $pfilearray=array();
    $pfilearray=mysql_fetch_assoc($result3);

    print_r($pfilearray);

但是这只给我找到了id为1的第一个名字,我缺少什么?

5 个答案:

答案 0 :(得分:4)

您应该使用while()和mysql_fetch_assoc()迭代整个结果集。例如:

while(($rs=mysql_fetch_assoc($result3))!=null)
{
    $pfilearray[]=$rs['name'];
}
print_r($pfilearray);

答案 1 :(得分:1)

mysql_fetch_assoc从结果集中返回一行,因此它只返回第一个值。您需要遍历结果集(代码中的$ result3)并获取所有行。

顺便说一下,mysql_函数系列很老了,大多数人会建议使用mysqli_系列,甚至更好,PDO

编辑: 一个非常基本的PDO示例:

$ddh = new PDO( /* connection details */ );
$sth = $dbh->prepare('SELECT name FROM table WHERE id= ? ');
$sth->execute(array(1));
$names = $sth->fetchAll();

答案 2 :(得分:1)

您可以使用此代码并验证您是否能够检索

while($row = mysql_fetch_array($result3))
{
  echo $row['name'];
  echo "<br>";
}

答案 3 :(得分:1)

使用mysql_fetch_array()循环遍历结果集。 如需更多帮助click here

答案 4 :(得分:0)

试试这个

$result3 = mysql_query("SELECT name FROM table WHERE id='1'", $link);
while($row=mysql_fetch_array($result3))
{
  echo $row['name'];
}