Page 1 sur 1

Impossible d'effectuer une requête

Posté : 21 juil. 2009, 18:13
par dubitoph
Bonsoir,

Pour effectuer des transactions vers ma base de données (MySql), j'utilise une classe nommée CtransactionsBdd.

Le problème qui survient, c'est sur un select (alors que j'ai déjà utilisé cette méthode avec bien d'autres select ailleurs dans mon projet, sans problème).

En fait, lorque je fais passer ma requête directement dans PhpAdmin, je retrouve bien les résultats attendus, tandis que via mon script, j'obtiens le message d'erreur envoyé par mon objet "Impossible d'effectuer la sélection select distinct codePostal from localites order by codePostal".

Voici le code dans mon script :

session_start();
 
if(!empty($_SESSION['cible']))
 {
  $objCible = unserialize($_SESSION['cible']);
  $tabDonnesCible = $objCible->getAll();
 }
...
 
echo " onblur=\"this.style.backgroundColor = '#FFFFFF'; if(verifNomAdresse(this)) this.style.backgroundColor = '#F3C200'\"></td>
		<td id='tdcontenu'>&nbsp;</td>
	 </tr>
	 <tr>
		<td id='tdcontenu'>&nbsp;</td>
    <td id='tdcontenu'>Code postal</td>
		<td id='tdcontenu'>
		 <select name ='codePostal' id='codePostal' tabindex='3' onChange='majLoc();'>
		  <option value='0'></option>";
 
 
if(empty($objCible))
 listeCodesPostaux();
else
 //listeCodesPostaux($tabDonnesCible['codePostal']);
 listeCodesPostaux();
 
echo "\n    </td>
Voici le code de ma fonction listeCodesPostaux() située dans un fichier de fonctions :
function listeCodesPostaux($cdPost = "")
 {
  $tab = NULL;
  $transaction = CtransactionsBdd::GetInstance("MYSQL", "speedcall");
  $resuReq = $transaction->select("MYSQL_listeCodesPost", $tab);
  $cpt = count($resuReq);

  for($i = 0; $i < $cpt; $i++)
   {
    echo "\r\n          <option value='" . $resuReq[$i]['codePostal'] . "'";
    
    if(!empty($cdPost))
     {
      if($resuReq[$i]['codePostal'] == $cdPost)
       echo " selected";
     }
    
    echo ">" . $resuReq[$i]['codePostal'] . "</option>";
   }

  echo "\r\n   </select>" . $transaction->getErreur();
 }
Voici le code de ma méthode :
public function select($requ, $tableau)
   {
    $requete = requete($requ, $tableau);
 
    switch(self::$typeBase)
     {
      case "MYSQL":
       $result = mysql_query($requete, self::$connect);
 
       if(! $result)
        self::$erreur = "Impossible d'effectuer la sélection " . $requete;
       else
        {
          if (! mysql_num_rows($result))
            self::$erreur = "Aucun résultat";
          else
           {
             while($row = mysql_fetch_assoc($result))
             $resultatSelect[] = $row;
 
             return $resultatSelect;
           }
        }
 
       break;
   }
Voici le code de ma fonction requete() située dans mon fichier de fonctions :
Code :
function requete($req, $param)
 {
   switch($req)
     {
      case "MYSQL_listeCodesPost":
       return "select distinct codePostal from localites order by codePostal";
       break;
       ...
Ce qui m'étonne, c'est que si

Code : Tout sélectionner

$_SESSION['cible']
n'existe pas, tous mes codes postaux s'affichent bien.

Quelqu'un aurait une idée?

Merci d'avance

Re: Impossible d'effectuer une requête

Posté : 21 août 2009, 10:13
par Maitrepylos
C'est donc que
$objCible
est vide !