[PHP] Return d'un objet qui foire

Return d'un objet qui foire [PHP] - PHP - Programmation

Marsh Posté le 08-08-2004 à 22:53:08    

Bonjour,
 
Vu que je suis passé sous Nux (et oui, tout arrive), je me suis mis "sérieusement" au PHP + MySQL (y'en a qui vont se faire moine je dis :D)
 
Et j'ai un petit problème (en simplifiant)
 
J'ai fait cette fonction:
 


function directAccess($typtie, $order, $limit)
{
   dbg("Accès direct à la table TIE pour le typtie $row->typtie" );
   $query = "SELECT t1.typtie, t1.sigtie, t1.nomtie FROM tie t1 WHERE t1.typtie = '$typtie' $order $limit";
   return mysql_query($query)
   or die (dbg("Requête invalide : $query" ));
}


 
Cependant, si je vais un mysql_fetch_object(directAccess("CLI", "","" ));
j'obtiens cette erreur :
 
 
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /var/www/libs/display.inc on line 5
 
Pourquoi ? On ne peux pas retourner d'objet de ce type ???


Message édité par Arjuna le 08-08-2004 à 22:57:48
Reply

Marsh Posté le 08-08-2004 à 22:53:08   

Reply

Marsh Posté le 08-08-2004 à 22:57:18    

PS: en réalité c'est un peu plus complexe...
 
Voilà la liste des fonctions :
 


<?php
function displayTable($resultset)
{
   echo "<table>\n";
   while ($row = mysql_fetch_object($resultset))
   {
      echo "   <tr>\n      <td>$row->typtie</td>\n      <td>$row->sigtie</td>\n      <td>$row->nomtietie</td>\n   </tr>\n";
   }
   echo "</table>\n";
}
?>
 
function getInfos($infoType, $order = "", $limit = "" )
{
   dbg("Recherche des headers pour le type $infoType" );
   $query = "SELECT typaccess, typtie, numrel FROM header WHERE typinfo = $infoType";
   $result = mysql_query($query)
   or die (dbg("Requête invalide : $query" ));
   
   if (mysql_num_rows($result) < 1)
   {
      dbg("Aucune donnée trouvée" );
   }
   else if (mysql_num_rows($result) > 1)
   {
      dbg("Plus d'une ligne retournée ! Erreur !!!" );
   }
   else
   {
      // Une seule ligne trouvée. C'est parfait, on continue.
      $row = mysql_fetch_object($result);
      switch ($row->typaccess)
      {
      case "DIR":
         return directAccess($row->typtie, $order, $limit);
         break;
      default:
         dgb("Type d'accès non supporté pour le moment." );
         break;
      }
   }
}
 
function directAccess($typtie, $order, $limit)
{
   dbg("Accès direct à la table TIE pour le typtie $row->typtie" );
   $query = "SELECT t1.typtie, t1.sigtie, t1.nomtie FROM tie t1 WHERE t1.typtie = '$typtie' $order $limit";
   return mysql_query($query)
   or die (dbg("Requête invalide : $query" ));
}
?>


 
J'appelle ça :
 


displayTable(getInfos(1));

Reply

Marsh Posté le 08-08-2004 à 23:01:13    

Bon, à priori j'ai corrigé tout seul, j'ai simplement utilisé une variables temporaire $result que j'ai mis dans mon return plutôt que retourner à chaque fois la fonction.

Reply

Sujets relatifs:

Leave a Replay

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