Problème de requête qui fonctionne sur SMS et pas en PHP

Problème de requête qui fonctionne sur SMS et pas en PHP - PHP - Programmation

Marsh Posté le 17-10-2011 à 15:36:38    

Bonjour,  
 
J'ai un problème avec cette requête :

Code :
  1. SELECT a.Paire, a.Double_Paire, a.Brelan, a.Suite, a.\"Full\", a.Carre, a.Yam,a.Un, a.Deux,
  2.             a.Trois, a.Quatre, a.Cinq, a.Six, a.Minimum, a.Maximum, a.Difference, a.Sous_Total,
  3.             b.Paire, b.Double_Paire, b.Brelan, b.Suite, b.\"Full\", b.Carre, b.Yam,b.Un, b.Deux,
  4.             b.Trois, b.Quatre, b.Cinq, b.Six, b.Minimum, b.Maximum, b.Difference, b.Sous_Total,
  5.             c.Paire, c.Double_Paire, c.Brelan, c.Suite, c.\"Full\", c.Carre, c.Yam,c.Un, c.Deux,
  6.             c.Trois, c.Quatre, c.Cinq, c.Six, c.Minimum, c.Maximum, c.Difference, c.Sous_Total,
  7.             d.id
  8.         FROM
  9.         descente$ AS a, montee$ AS b, aleatoire$ AS c, parties$ AS d
  10.         WHERE (a.id_partie = d.id
  11.         AND b.id_partie = d.id
  12.         AND c.id_partie = d.id
  13.         AND d.id = $id_partie
  14.         AND a.NomJoueur = '$nom_utilisateur'
  15.         AND b.NomJoueur = '$nom_utilisateur'
  16.         AND c.NomJoueur = '$nom_utilisateur'
  17.         )

 
MSSQL sous PHP : elle fonctionne très bien dans SQL Management mais pas sous PHP.
Elle devrait me retourner un tableau de 1 ligne.
 
J'ai testé sous MySQL et ça fonctionne très bien (faut juste enlever les '$' pour les tables) et sur une page PHP/MySQL ça fonctionne aussi.
J'ai echappé (\" ) tous ce qui devait l'être.
 
Mes autres requêtes fonctionnent sur MSSQL, il n'y a que celle-ci qui merdouille.
 
Quelqu'un aurait une idée?
 
Voici le code de ma fonction complète :
 

Code :
  1. function lire_infos_grille($nom_utilisateur, $id_partie)
  2. {
  3. $pdo = PDO2::getInstance();
  4. $requete = $pdo->prepare("SELECT a.Paire, a.Double_Paire, a.Brelan, a.Suite, a.\"Full\", a.Carre, a.Yam,a.Un, a.Deux,
  5.             a.Trois, a.Quatre, a.Cinq, a.Six, a.Minimum, a.Maximum, a.\"Difference\", a.Sous_Total,
  6.             b.Paire, b.Double_Paire, b.Brelan, b.Suite, b.\"Full\", b.Carre, b.Yam,b.Un, b.Deux,
  7.             b.Trois, b.Quatre, b.Cinq, b.Six, b.Minimum, b.Maximum, b.\"Difference\", b.Sous_Total,
  8.             c.Paire, c.Double_Paire, c.Brelan, c.Suite, c.\"Full\", c.Carre, c.Yam,c.Un, c.Deux,
  9.             c.Trois, c.Quatre, c.Cinq, c.Six, c.Minimum, c.Maximum, c.\"Difference\", c.Sous_Total,
  10.             d.id
  11.         FROM
  12.         descente$ AS a, montee$ AS b, aleatoire$ AS c, parties$ AS d
  13.         WHERE (a.id_partie = d.id
  14.         AND b.id_partie = d.id
  15.         AND c.id_partie = d.id
  16.         AND d.id = $id_partie
  17.         AND a.NomJoueur = '$nom_utilisateur'
  18.         AND b.NomJoueur = '$nom_utilisateur'
  19.         AND c.NomJoueur = '$nom_utilisateur'
  20.         )" );
  21.        
  22.         echo $id_partie;
  23. //si il n'y as pas d'id_partie on prend la dernière partie comme point de départ
  24. if(false == $id_partie)
  25. {
  26.  $requetePartie = $pdo->prepare("SELECT id, convert(varchar, date_partie, 101) AS date_partie_fr
  27.    FROM(select id, date_partie, ROW_NUMBER() OVER(ORDER BY date_partie DESC, id DESC) [rowNumber]
  28.    FROM parties$  WHERE Participants= '$Participants'
  29.    )q WHERE rowNumber BETWEEN 0 and 1" );
  30.  $requetePartie->execute();
  31.  $resultatPartie = $requetePartie->fetch(PDO::FETCH_BOTH);
  32.  $requetePartie->closeCursor();
  33.  ;
  34.  $id_partie = $resultatPartie[0];
  35. }
  36. $requete->bindParam('nom_utilisateur', $nom_utilisateur);
  37. $requete->bindParam('id_partie', $id_partie);
  38. $requete->execute();
  39.  
  40. if($result = $requete->fetch(PDO::FETCH_BOTH))
  41. {     
  42.         $requete->closeCursor();
  43.  return $result;
  44. };
  45. return false;
  46. }


 
Merci de votre aide.

Reply

Marsh Posté le 17-10-2011 à 15:36:38   

Reply

Marsh Posté le 18-10-2011 à 08:14:46    

Ca te donne quel résultat? Tu ne récupères l'erreur nulle part? :o
Pourquoi tu utilises tes variables php directement dans la requête? Tes bindparam ne font rien, là, non?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-10-2011 à 17:17:09    

C'est quoi le rapport avec "SMS" (cf le titre de ton topic :??: )


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed