2013-03-25 43 views
1

此代码适用于我。不可能从PHP中的SQL临时表中获取值?

$result = mysql_query("select * from tbl_rating limit 1 ;"); 

while($row = mysql_fetch_array($result)){ 

    echo $row["NameA"]; 

} 

但是,此代码不起作用。任何人都可以指出我的错误吗?谢谢。

$result = mysql_query("create temporary table ub_rank as 
select similar.NameA,count(*) rank 
from tbl_rating target 
join tbl_rating similar on target.NameB= similar.NameB and target.NameA != similar.NameA and target.Rate= similar.Rate 
where target.NameA = 'tutorA' 
group by similar.NameA; 

select * from ub_rank limit 1 ;"); 

while($row = mysql_fetch_array($result)){ 

    echo $row["NameA"]; 

    } 

错误消息:

警告:mysql_fetch_array():提供的参数不是一个有效的MySQL结果资源

但是,我不知道为什么我可以在第一代码与获得的价值同样的结构?!

+2

你不能把2个查询放在一个mysql_query函数中 – 2013-03-25 23:53:38

回答

1

mysql_query()不支持通过多个查询。你需要打破查询分成两个单独的呼叫:

mysql_query("create temporary table ub_rank as 
    select similar.NameA,count(*) rank 
    from tbl_rating target 
    join tbl_rating similar on target.NameB= similar.NameB and target.NameA != similar.NameA and target.Rate= similar.Rate 
    where target.NameA = 'tutorA' 
    group by similar.NameA 
"); 
$result = mysql_query("select * from ub_rank limit 1 ;"); 

while($row = mysql_fetch_array($result)){ 
    echo $row["NameA"]; 
} 
1

mysql_query(),你不应该使用无论如何,因为它已被弃用,不会让你在这样一个呼叫执行多个查询。从技术上讲,存在一种诡计来执行多个查询的方式,但它只会提供第一个结果集。

您需要分别执行这些查询。或者,如果您转换为使用mysqli,则可以使用mysqli_multi_query,但只有在您不需要结果集的情况下才有用。