我对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的第一个名字,我缺少什么?
答案 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'];
}