IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Ressource SQL Server Statement ne renvoie pas les bonnes données


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Ressource SQL Server Statement ne renvoie pas les bonnes données
    Bonjour,
    J'adapte un programme qui fonctionne correctement avec une base MySQL pour passer sur une base SQL Server et je bute sur le problème suivant:
    Mon source 'modifyPrevision.php' fait appel à une fonction getPrevBy du source BDD.php et si je trace le résultat de requête en base SQL, je n'ai pas la même chose dans l'appelant et dans la fonction .

    - Dans BDD.php: si je trace le résultat du sqlsrv_query effectué dans la fonction getPrevBy, la requête me renvoie une ressource que je peux exploiter

    extrait de BDD.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php
    $fic = "c:\\TMP_LP\\traceBDD.txt";
    $fp = fopen ($fic, "a+"); 
    fwrite($fp, "----- trace BDD.php fonction getPrevBy   debut -------------- \r\n"); 
     
    fwrite($fp, " la REQUETE getPrevBy:".$query ."\r\n");
     
    $this->connexion();
     
    $res = sqlsrv_query ($this->connexion,$query);
    if( ($errors = sqlsrv_errors() ) != null) {
     foreach( $errors as $error ) {
      echo "SQLSTATE: ".$error[ 'SQLSTATE']."<br />";
      echo "code: ".$error[ 'code']."<br />";
      echo "message: ".$error[ 'message']."<br />";
     }
     die();
    }
    if (is_resource($res)) {
     fwrite($fp, "is_resource: TRUE \r\n");
     $type= get_resource_type($res) ;
     fwrite($fp, " type : $type \r\n");
    } else {
     fwrite($fp, "is_resource: FALSE \r\n");
    }
     
    while ($row = sqlsrv_fetch_array($res, SQLSRV_FETCH_NUMERIC)){
     $row0 = utf8_encode($row[0]);
     $row1 = utf8_encode($row[1]);
     $row2 = utf8_encode($row[2]);
     fwrite($fp, "ROW: ".$row0 ." - ".$row1." - ".$row2."\r\n");
    }  
    fwrite($fp, "----- trace BDD.php fonction getPrevBy  fin -------------- \r\n"); 
    fclose($fp);

    résultat dans le fichier de trace:

    Nom : traceBDD.jpg
Affichages : 169
Taille : 42,7 Ko

    - dans mon programme appelant modifyPrevision.php :

    extrait de source modifyPrevision.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php
    $lesforecasts=$bdd->getPrevBy( $order, $proj, $bud, $csr, $team, $budTyp, $suptod,$inftod, $suptot, $inftot, $supexc, $infexc, $supinc,$infinc, $dateP, $dateS, $deb, $stat, $pagination);
    $fic = "c:\\TMP_LP\\traceModifyPrevision.txt";
    $fp = fopen ($fic, "a+");
    fwrite($fp, "----- trace ModifyPrevision.php debut----------------- \r\n"); 
    if (is_resource($lesforecasts)) {
     fwrite($fp, "is_resource TRUE \r\n");
     $type= get_resource_type($lesforecasts) ;
     fwrite($fp, " type : $type \r\n");
    } else {
     fwrite($fp, "is_resource FALSE \r\n");
    }
     
    while ($row = sqlsrv_fetch_array($lesforecasts, SQLSRV_FETCH_NUMERIC)){
     $row0 = utf8_encode($row[0]);
     $row1 = utf8_encode($row[1]);
     $row2 = utf8_encode($row[2]);
     var_dump($row);
     
            fwrite($fp, "ROW: ".$row0 ." - ".$row1." - ".$row2."\r\n");
    }
     
    fwrite($fp, "-----trace ModifyPrevision.php  fin----------------- \r\n");
    fclose($fp);

    résultat dans le fichier de trace: la ressource semble vide, aucune ligne de la boucle while n'est affichée et le var_dump non plus
    Nom : fichierTraceModifyPrevision.jpg
Affichages : 148
Taille : 11,9 Ko

    D'avance merci de votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour et bienvenu sur DVP

    Au lieu de montrer des images du code, merci de :
    • copier directement ton code dans le contenu du message
    • le formater grâce à l'icone "#" ([CODE]) du mini-menu

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    merci, c'est noté.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ce n'est pas évident de s'y retrouver entre les bouts de code que tu nous montres et tes explications.
    Si j'ai bien compris ta méthode getPrevBy() retourne $res.
    Dans ce cas, c'est normal que tu n'aies rien puisque tu as déjà parcouru l'ensemble des résultat lors de la première boucle.
    Les jeux de résultat ne se rembobinent pas, heureusement sinon ça tournerait à l'infini.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [AC-2002] Formulaire ne passe pas les bonnes données à une requête
    Par badge234 dans le forum Access
    Réponses: 3
    Dernier message: 01/07/2015, 19h19
  2. [MySQL-5.5] LEFT JOIN avec MAX qui ne me retourne pas les bonnes données
    Par Gloup dans le forum Requêtes
    Réponses: 4
    Dernier message: 05/05/2014, 18h26
  3. Réponses: 4
    Dernier message: 04/03/2012, 15h29
  4. SQL qui renvoie pas les valeurs
    Par PIEPLU dans le forum Langage SQL
    Réponses: 1
    Dernier message: 19/12/2009, 16h51
  5. [SQL] Pb Mysql n'insert pas les bonnes valeur dans la bdd
    Par potao dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 11/02/2007, 04h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo