首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql查询返回所有其他列的第一列中的值

问mysql查询返回所有其他列的第一列中的值
EN

Stack Overflow用户
提问于 2010-10-13 17:26:21
回答 3查看 2K关注 0票数 0

您好,我对下面的一个表进行了查询,当我尝试获取每一列中的值时,它从第一列中为所有其他列返回相同的值。要详细说明

在我的数据库表中,我有以下内容:

代码语言:javascript
复制
owner_id = 21
pet_id = 1
name = fluffy
color = green
type = dog
sub_type = boxer
location = LA

但是,每当我尝试访问一列时,它返回21,这是对应于该pet_id的owner_id列中的值。我不确定为什么会发生这种情况。

代码语言:javascript
复制
$query = sprintf("SELECT * FROM `petAttributes` where pet_id ='%d'",$p_id);
 $result = performQuery($query);

 $owner_id = stripslashes(mysql_result($result,"owner_id"));
 $pet_id = stripslashes(mysql_result($result,"pet_id"));
 $name = stripslashes(mysql_result($result,"name"));
 $color = stripslashes(mysql_result($result,"color"));
 $type = stripslashes(mysql_result($result,"type"));
 $sub_type = stripslashes(mysql_result($result,"sub_type"));
 $loc = stripslashes(mysql_result($result,"location"));

我的环境信息

PHP版本5.2.14

MYSQL版本5.0.67

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-13 17:33:11

我相信,如果使用mysql_result,在指定列之前,还必须指定行索引号(在本例中是第0行?)。

代码语言:javascript
复制
$name = stripslashes(mysql_result($result, 0, "name"));
票数 1
EN

Stack Overflow用户

发布于 2010-10-13 17:32:45

参考http://php.net/manual/en/function.mysql-result.php mysql_result,它的参数如下:mysql_result($result,$rownumber,$fieldname or $fieldnumber)

这应该是可行的:

代码语言:javascript
复制
$query = sprintf("SELECT * FROM petAttributes where pet_id ='%d'",$p_id);
$result = performQuery($query);

$owner_id = stripslashes(mysql_result($result,0,"owner_id"));
$pet_id = stripslashes(mysql_result($result,0,"pet_id"));
$name = stripslashes(mysql_result($result,0,"name"));
$color = stripslashes(mysql_result($result,0,"color"));
$type = stripslashes(mysql_result($result,0,"type"));
$sub_type = stripslashes(mysql_result($result,0,"sub_type"));
$loc = stripslashes(mysql_result($result,0,"location"));

顺便说一句,如果你取多个行,mysql_result的效率会变得非常低。然后,您应该使用mysql_fetch_row、mysql_fetch_array或mysql_fetch_assoc

票数 0
EN

Stack Overflow用户

发布于 2010-10-13 17:42:58

你也可以;

仅适用于第一行

代码语言:javascript
复制
$query = sprintf("SELECT * FROM petAttributes where pet_id ='%d'",$p_id);
$result = performQuery($query);
$row = mysql_fetch_array($result);

extract($row);

或所有返回的行;

代码语言:javascript
复制
$query = sprintf("SELECT * FROM petAttributes where pet_id ='%d'",$p_id);
$result = performQuery($query);
while($row = mysql_fetch_array($result))
{
  foreach ($row as $value)  echo $value."<br>";
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3922284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档