Bonjours,
je suis nouveau en php et je rencontre actuellement un problème un coup de pousse de votre part serais pas de refus :p ,voila mon problème quand j'exécute la requête dans sql server sa marche normal mais quand je fais sa avec php sa me retourne rien svp aidez moi merci
voila mon code :

<?php
$sql5 = "  

select t.Tan, SUM(s.TOP) as Top
into #TempEnj
from [Proses].[dbo].[CD_Dok] d
inner join [Proses].[dbo].[CD_Sar] s on(s.DOID = d.ID)
inner join [Proses].[dbo].[CT_Sa] t on (s.TANID= t.ID)

  where d.date ='2017-10-05'

   group by T.Tan

insert into #TempEnj values ('Enerji', (select sum(Enj) from [Proses].[dbo].[CD_Dok] where date ='2017-10-05'))
insert into #TempEnj values ('Sure', (select sum(Sure) from [Proses].[dbo].[CD_Dok] where date ='2017-10-05'))
select * from #TempEnj ";

$stmt5 = sqlsrv_query( $conn, $sql5 );
if( $stmt5 === false ) {
    if( ($errors = sqlsrv_errors() ) != null) {
        foreach( $errors as $error ) {
            echo "SQLSTATE: ".$error[ 'SQLSTATE']."<br />";
            echo "code: ".$error[ 'code']."<br />";
            echo "message: ".$error[ 'message']."<br />";
        }
    }
}

$tab5[]= array();
while( $row = sqlsrv_fetch_array( $stmt5, SQLSRV_FETCH_ASSOC) ) {
    $tab5[] = $row;

}   
var_dump($tab5);
?>

4 réponses


eltharin
Réponse acceptée

C'est pas tant les requetes temporaires qui ne marchent pas, c'est le fait de vouloir lancer 2 select et 2 insert dans le même sqlsrv_query
Il faut en faire 4.

$sql5 = "  

select t.Tan, SUM(s.TOP) as Top
into #TempEnj
from Proses.dbo.CD_Dok d
inner join Proses.dbo.CD_Sar s on(s.DOID = d.ID)
inner join Proses.dbo.CT_Sa t on (s.TANID= t.ID)

  where d.date ='2017-10-05'

   group by T.Tan";
$stmt5 = sqlsrv_query( $conn, $sql5 );

$sql5 = "insert into #TempEnj values ('Enerji', (select sum(Enj) from [Proses].[dbo].[CD_Dok] where date ='2017-10-05'))";
$stmt5 = sqlsrv_query( $conn, $sql5 );

$sql5 = "insert into #TempEnj values ('Sure', (select sum(Sure) from [Proses].[dbo].[CD_Dok] where date ='2017-10-05'))";
$stmt5 = sqlsrv_query( $conn, $sql5 );

$sql5 = "select * from #TempEnj ";
$stmt5 = sqlsrv_query( $conn, $sql5 );

Bonjour,
Je pense que déjà, le mieux serait de le faire en 4 query différentes, d'abbord la création, puis les 2 insert, et enfin et c'est la essus que tu boucles, un select.
Effectivement dans management studio, les requetes a la suite sont bien prises en charge, mais je ne crois pas que PHP accepte.

Ani
Auteur

Bonsoir ,
merci de votre reponse je pense que je vais separer la requete en 2 pour eviter les tables temporaire .

Ani
Auteur

Bonsoirs,
le probleme est regler vous aviez raison merci infiniment :)