Impossible d'effectuer une requête

Eléphanteau du PHP | 24 Messages

21 juil. 2009, 18:13

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

Mammouth du PHP | 1029 Messages

21 août 2009, 10:13

C'est donc que
$objCible
est vide !
L'expérience est la somme de toutes nos erreurs.