2010-10-13 105 views
0

您好我对下面的表进行了查询,当我试图获取每列中的值时,它会从第一列返回相同的值其他栏目。 要精心
在我的数据库表中我有以下几点:
mysql查询返回所有其他列的第一列中的值

owner_id = 21 
pet_id = 1 
name = fluffy 
color = green 
type = dog 
sub_type = boxer 
location = LA 

但是每当我试图访问一个列,说这个名字列,它返回21,其对应于owner_id列 值那pet_id。我不知道为什么这是 发生。

$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

回答

1

我相信,如果你使用mysql_result你还必须指定行指数(在你的情况下0行?),你指定列前。

$name = stripslashes(mysql_result($result, 0, "name")); 
0

指的 mysql_result有它这样的参数:mysql_result($result,$rownumber,$fieldname or $fieldnumber)

这应该workd:

$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

你也可以;

只有第一排

$query = sprintf("SELECT * FROM petAttributes where pet_id ='%d'",$p_id); 
$result = performQuery($query); 
$row = mysql_fetch_array($result); 

extract($row); 

或全部返回的行;

$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

对不起,我无法忍受那可怕的代码。编辑它 – 2010-10-13 09:50:22

+0

对不起,谢谢。 – ismailperim 2010-10-13 10:15:28

+0

谢谢!那样做了。 – Justin 2010-10-13 19:23:25

相关问题