Php 我能';t从存储过程中获取临时表数据

Php 我能';t从存储过程中获取临时表数据,php,sql-server,Php,Sql Server,我在sql server中创建的存储过程的结构如下 ALTER PROCEDURE [dbo].[list_final_player_report] -- Add the parameters for the stored procedure here @teamid int AS BEGIN CREATE TABLE #TempTable ( playername varchar(50),

我在sql server中创建的存储过程的结构如下

ALTER PROCEDURE [dbo].[list_final_player_report]
    -- Add the parameters for the stored procedure here
    @teamid int
AS
BEGIN
CREATE TABLE #TempTable (
                        playername varchar(50),
                        RANK_in_speedladdar INT,
                        rank_in_120s int,
                        rank_in_cone int,
                        rank_in_beep int,
                        rank_in_cooper int,
                        rank_in_pushups int,
                        rank_in_situp int,
                        rank_in_pullup int,
                        rank_in_40s int,
                        rank_in_pushopbattle int,
                        rank_in_vertical_jump int,
                        rank_in_shuttle int
                    )
DECLARE @playerid int
DECLARE @firstname nvarchar(10) 

-- Define the cursor
DECLARE cursor1 cursor for
select Players.PlayerID as PlayerID , players.firstname  from Players where Teamid=@teamid

-- We should open the cursor
OPEN cursor1

-- We need to Fetch the rows into @EmpId variable
FETCH cursor1 into @playerid,@firstname

--Looping
WHILE(@@fetch_status=0)
BEGIN

insert into #TempTable 
values(@firstname,
(select  (sum(Total))/count(PlayerID)  from ChallengeStats WHERE ChallengeStats.ChallengeID =1 and ChallengeStats.PlayerID=@playerid ),
(select  (sum(Total))/count(PlayerID)  from ChallengeStats WHERE ChallengeStats.ChallengeID =2 and ChallengeStats.PlayerID=@playerid ),
(select  (sum(Total))/count(PlayerID)  from ChallengeStats WHERE ChallengeStats.ChallengeID =3 and ChallengeStats.PlayerID=@playerid ) ,
(select  (sum(Total))/count(PlayerID)  from ChallengeStats WHERE ChallengeStats.ChallengeID =4 and ChallengeStats.PlayerID=@playerid ) ,
(select  (sum(Total))/count(PlayerID)  from ChallengeStats WHERE ChallengeStats.ChallengeID =5 and ChallengeStats.PlayerID=@playerid ) ,
(select  (sum(Total))/count(PlayerID)  from ChallengeStats WHERE ChallengeStats.ChallengeID =6 and ChallengeStats.PlayerID=@playerid ) ,
(select  (sum(Total))/count(PlayerID)  from ChallengeStats WHERE ChallengeStats.ChallengeID =7 and ChallengeStats.PlayerID=@playerid ) ,
(select  (sum(Total))/count(PlayerID)  from ChallengeStats WHERE ChallengeStats.ChallengeID =8 and ChallengeStats.PlayerID=@playerid ) ,
(select  (sum(Total))/count(PlayerID)  from ChallengeStats WHERE ChallengeStats.ChallengeID =9 and ChallengeStats.PlayerID=@playerid ) ,
(select  (sum(Total))/count(PlayerID)  from ChallengeStats WHERE ChallengeStats.ChallengeID =10 and ChallengeStats.PlayerID=@playerid ) ,
(select  (sum(Total))/count(PlayerID)  from ChallengeStats WHERE ChallengeStats.ChallengeID =11 and ChallengeStats.PlayerID=@playerid ) ,
(select  (sum(Total))/count(PlayerID)  from ChallengeStats WHERE ChallengeStats.ChallengeID =12 and ChallengeStats.PlayerID=@playerid )  
)

FETCH cursor1 into @playerid,@firstname
END

close cursor1
deallocate cursor1 
select * from #TempTable
END
此sp完全可以在sqlserver中执行


但是现在的问题是如何将这个临时表数据放入php结果集,而不是使用临时表,为什么不使用表变量呢。 为了实现这一点,您不必修改太多代码

DECLARE @TempTable TABLE (
                        playername varchar(50),
                        RANK_in_speedladdar INT,
                        rank_in_120s int,
                        rank_in_cone int,
                        rank_in_beep int,
                        rank_in_cooper int,
                        rank_in_pushups int,
                        rank_in_situp int,
                        rank_in_pullup int,
                        rank_in_40s int,
                        rank_in_pushopbattle int,
                        rank_in_vertical_jump int,
                        rank_in_shuttle int
                    )

临时表仅在其使用范围内有效,这可能导致您的问题。尝试上面的方法,您应该会得到不同的结果。

但它在sql server中工作得非常好。..probl正在获取/显示临时表。这很公平,但在它将数据返回到调用页之前,您似乎正在失去作用域。使用VARABLE表应该可以为您解决这个问题……您可以向您展示php代码吗?