Bonjour,

Voilà, je bloque depuis des heures sur un problème de fou. J'utilise postgresql, via l'ORM MDB_QueryTool de PEAR.
J'ai une table (et donc une classe ORM) appellé scores (pour la table) ou Scores (pour la classe). Voici le code de la classe :
Code : 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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 
<?php
// Définition de la racine
$racine = "../";
$racineConfig = $racine."config/";
 
// Instantiation des paramètres, inclusions des fichiers requis, démarrage de la session
@include_once $racineConfig."init.php";
 
/**
 * Cette constante définit la table liée à la classe.
 */
define('TABLE_SCORES', 'scores');
 
/**
 * Classe de gestion de la table scores dans la base de données.
 */
class Scores extends MDB_QueryTool{
   /**
    * Définit la table en lien avec la classe
    * @var string 
   */
   var $table = TABLE_SCORES;
 
   /**
    * Définit la sequence pour la table
    * @var string
    */
   var $sequenceName = TABLE_SCORES;
 
   /**
    * Définit la clé primaire de la table en lien avec la classe
    * @var string 
    */
   var $primaryCol = 'score_id';
 
   /**
    * Construit l'objet voulu en appelant le constructeur du parent MDB_Querytool
    */
   public function __construct(){
      parent::__construct(Config::$dsn, Config::$optionsDbConnect, Config::$versionMdb);
      parent::useResult('object');
   }
 
   /**
    * Définit un nom court pour la table
    * @var array
    */
   var $tableSpec = array(
      array('name' => TABLE_SCORES, 'shortName' => 'scores')
   );
}?>
Maintenant voici le code qui plante :
Code : 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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
 
class AjaxProcess{
   /**
 
   * Fonction permettant d'afficher les scores de manière lisible.
 
   * @static
 
   * @param Array $args tableau contenant les paramètres
 
   * @return mixed
 
   */
 
   static function displayScores(&$args){
 
      /* Liste des arguments :
 
       * 0 : Début de la selection des scores
 
       * 1 : Limit du nombre de score à selectionner
 
       */
 
 
 
      // Instantiation de la variable de retour
 
      $return  = null;
 
      $start   = (!empty($args[0]) && (int) $args[0] > 0) ? (int) $args[0] : 1;
 
      $limit   = (!empty($args[1]) && (int) $args[1] > 9) ? (int) $args[1] : 10;
 
 
 
      // Instantiation et initialisation de l'objet ORM
 
      $tableScore = new Scores();
 
      $tableScore->reset();
 
      //echo $tableScore->getQueryString(); // Requette merdique !
 
 
 
      // Test nombre de score
 
      if((int) $tableScore->getCount() > 0){
 
         // Instanciation variables de retour
 
         $tabScore   = array();
 
         //var_dump($tableScore); //  Bien construit
 
 
         // Requete
 
         $tableScore->setOrder("scores_score", true);
 
         //var_dump($tableScore); //  Bien construit
 
         //echo $tableScore->getQueryString(); // Requette merdique
 
         $tableScore->setLimit($start, $limit);
 
         //echo $tableScore->getQueryString(); // Requette s'affiche pas
 
         //var_dump($tableScore); //  Bien construit
 
 
         // Résultat
 
         $allScores = $tableScore->getAll();
 
         var_dump($allScores); // False !!!!
 
         // ARET DU PROGRAMME ICI (erreur 500)
 
         // Parcour des résultats
 
         while($thisScore = $allScores->getNext()){
 
            $tabScore[count($tabScore)]["pseudo"]   = $thisScore->pseudo;
 
            $tabScore[count($tabScore)]["score"]    = $thisScore->score;
 
            $tabScore[count($tabScore)]["date"]     = $thisScore->date;
 
         }
 
         echo "vi ?"; // Non afficher
 
         // Encodage json du tableau des scores
 
         $return = json_encode($tabScore);
 
         var_dump($return); // Non afficher
      }
 
 
 
      return $return;
 
   }
 
// [..] Fin de la class
}
AjaxProcess::displayScores(array("pseudo", 20)); Fait planter le serveur (erreur 500) à l'endroit indiqué.

Merci d'avance...