Problem mit Datenbank Funktion

matzseesi

Erfahrenes Mitglied
Hi Leutz

Habe folgende Funktion geschrieben, die mir zu je nach Mitgabewerte als Rückgabewert die Abfrage liefert.

DH.: Wenn ich für $selection schreibe 'clanid,30' dann liefert er mir brav ein Object zurück. Allerdings wenn ich dann versuche dieses mit mysql_num_rows zu zählen dann schreibt er folgendes hin:
PHP:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in bla.inc.php on line 137

Ein Aufruf der Funktion sieht folgendermaßen aus:

PHP:
$abfrage=connect_instructor_db($db_username,$db_passwort,$db_host,$db_instructorhome,$db_instructor_tablename,'','clanid,' . $clanid,'instructorid,ASC');

Was kann das sein Warum geht das nicht? Habe ich einen Fehler in meiner Funktion?
Wenn ich alles auslesen möchte (dh. Var $all = 1 ) dann kann ich myql_num_rows verwenden. Dann gibt er mir eine korrekte Zahl zurück.

Bitte um HIlfe, hier die Funktion

Grüße und danke im voraus Matthias

PHP:
function connect_instructor_db($db_username,$db_passwort,$db_host,$db_dbname,$db_tablename,$all,$selection,$sort)
  {
   if (!($verbindung = mysql_connect($db_host,$db_username,$db_passwort)))
     {
      return $error='no_connection';
      exit();
     }
   if (!mysql_select_db ($db_dbname, $verbindung))
     {
      $error='no_database';
      return $error;
     }  
   if ($all=='1')
     {
      if ($sort=='')
      {
       $query = "SELECT * FROM " . $db_tablename;
      }
      else
      { 
       list($sort,$order)=split('[,]',$sort);
   	   $query = "SELECT * FROM " . $db_tablename . " ORDER BY " . $sort . " " . $order;
      }
      if (!($ergebniss=mysql_query($query)))
        {
         $error='no_select';
         mysql_close($verbindung);
         return $error;
        }
	   else
	    {
	     mysql_close($verbindung);
	     return $ergebniss;
	    }
     }
     else
     {
      list($searchfor,$searchname)=split('[,]',$selection);     	
      $query = "SELECT instructorid, userid, clanid, instructorname, gametype, arttype FROM " . $db_tablename . " WHERE `" . $searchfor . "`='" . $searchname . "'";
      if (!($ergebniss=mysql_query($query)))
      {
       $error = 'no_select';	
	   return $error;
      }
	  else
	  {
	   $abfrage = mysql_fetch_object($ergebniss);
	   mysql_close($verbindung);
	   return $abfrage;
	  } 
     }    	
  }
 
PHP:
function connect_instructor_db($db_username,$db_passwort,$db_host,$db_dbname,
$db_tablename,$all,$selection,$sort)
  {
   if (!($verbindung = mysql_connect($db_host,$db_username,$db_passwort)))
     {
      return $error='no_connection';
      exit();
     }
   if (!mysql_select_db ($db_dbname, $verbindung))
     {
      $error='no_database';
      return $error;
     }  
   if ($all=='1')
     {
      if ($sort=='')
      {
       $query = "SELECT * FROM " . $db_tablename;
      }
      else
      { 
       list($sort,$order)=split('[,]',$sort);
   	   $query = "SELECT * FROM " . $db_tablename . " ORDER BY " . $sort . " " . $order;
      }
      if (!($ergebniss=mysql_query($query)))
        {
         $error='no_select';
         mysql_close($verbindung);
         return $error;
        }
	   else
	    {
	     mysql_close($verbindung);
	     return $ergebniss;
	    }
     }
     else
     {
      list($searchfor,$searchname)=split('[,]',$selection);     	
      $query = "SELECT instructorid, userid, clanid, instructorname, gametype, arttype FROM " . $db_tablename . " 
WHERE `" . $searchfor . "`='" . $searchname . "'";
      if (!($ergebniss=mysql_query($query)))
      {
       $error = 'no_select';	
	   return $error;
      }
	  else
	  {
	   $abfrage = mysql_fetch_object($ergebniss);
	   mysql_close($verbindung);
	   return $abfrage;
	  } 
     }    	
  }
 
Habs mittlerweile selber gefunden


PHP:
$abfrage = mysql_fetch_object($ergebniss);

In der Funktion steht dieser Befehl und auf den kann ich kein mysql_num_rows ausführen

Danke für die zahlreichen Antworten

;-)

Matthias
 
Original geschrieben von matzseesi
Habs mittlerweile selber gefunden


PHP:
$abfrage = mysql_fetch_object($ergebniss);


In der Funktion steht dieser Befehl und auf den kann ich kein mysql_num_rows ausführen

Danke für die zahlreichen Antworten

;-)

Matthias

Wollte nur mal anmerken: Ergebnis schreibt man mit einem "s" :-)
 
Zurück