Mysql-result nicht das selbe mehr nach return

Hallo zusammen,
ich habe ein Objekt mit einer Methode welches als Rückgabewert das Ergebnis eines mysql-Selects gibt.

Leider kann ich dieses zurückgegebene Ergebnis kein Stück mehr über meine alt eingesessene techniken auslesen. (while-Schleife mit mysql_fetch_array) :frowning:

Weiss jemand, wie man vernünftig ein mysql-query returned?
Oder eine technik, wie ich das Ergebnis ähnlich hübsch unanstrengend :wink:
abarbeiten kann?

Danke schonmal…
Gruß Mike

hi,

ich hatte letzlich dasselbe problem.

ich habe dann einfach das ganze zeug in ein array kopiert. das kannst du dann ganz einfach zurueckgeben. ist etwas unsauber…
ich hab den programmfetzen mal da unten reingepostet.

PEAR bietet meines wissens noch ein modul fuer datenbanken an. vielleicht da mal schauen.

http://pear.php.net/package-info.php?package=DB

while ($line2 = mysql_fetch_array($result, MYSQL_ASSOC))
{
$kat = $line2[‚kat‘];
if ($line[$kat.$i] == NULL){
$line[$kat.$i]=array();
}
$line[$kat.$i][„kat“]=$line2[‚kat‘];
$line[$kat.$i][‚dat‘]=$line2[‚dat‘];
$line[$kat.$i][„name“]=$line2[‚name‘];
$line[$kat.$i][„ort“]= $line2[‚ort‘];
$line[$kat.$i][„zeit“]= $line2[‚zeit‘];

$i++;
}

cu josh

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ich weiß nicht ob ich Dein Problem richtig verstanden habe, aber ich hab da mal eine Funktion geschrieben, die Dir vielleicht weiterhilft…

Aufgerufen wird Sie z. B. so:

<?php $erg = gf_runsql("SELECT name, vorname FROM adressen");<br />
 if($erg["COUNT"]\>0) {
 while($info=mysql\_fetch\_array($erg["RESULT"])) {
 echo $info["name"]." ".$info["vorname"]."
";
 }
 }
 else {
 echo "Keine Daten zum Anzeigen!
";
 }
?\>


<?php function gf_runsql($sql)<br />{
 # Funktion "gf\_runsql()"
 #
 # Voraussetzungen:
 # Die Variablen $host, $user, $pass, $database und $debugmode
 # müssen im Vorfeld (am besten im Header der Seite) vorbelegt
 # werden.
 #
 # Beschreibung:
 # Führt den angegebenen SQL-Befehl aus.
 #
 # Syntax:
 # array = gf\_runsql(SQL-String)
 #
 # Rückgabewerte (Beispiel):
 # $erg = gf\_runsql("SELECT \* FROM example");
 # $erg["RESULT"]; // Handle auf das mySQL-Result
 # $erg["INSERTID"]; // Bei SQL-Inserts ID des zuletzt eingefügten Datensatzes
 # $erg["COUNT"]; // Anzahl Ergebnisse
 # $erg["ERR\_NUM"]; // Bei Fehler - Fehlernummer
 # $erg["ERR\_TXT"]; // Bei Fehler - Fehlerbeschreibung

 Global $host, $user, $pass, $database, $debugmode;

 $db = gf\_dbconnect();
 $sql = ltrim($sql);
 $type = strtoupper(substr($sql,0,6));
 $count = 0;
 $insertid = -1;

 $result = @mysql\_query($sql);
 $insertid = @mysql\_insert\_id();
 $err = mysql\_errno();
 $errtxt = "";

 if($err\<\>0) 
 { 
 $errtxt=mysql\_error(); 
 if($debugmode) { echo "
**FEHLER (#$err):** - \"$errtxt\"
"; }
 }
 else
 {
 if($type=="ALTER ") {
 $count=mysql\_affected\_rows($result);
 }
 elseif($type=="CREATE") {
 $count=-1;
 }
 elseif($type=="SELECT") {
 $count=@mysql\_num\_rows($result);
 }
 else {
 $count=@mysql\_affected\_rows($db["DB"]);
 }
 }
 return array("RESULT" =\> $result, 
 "COUNT" =\> $count,
 "INSERTID" =\> $insertid,
 "ERR\_NUM" =\> $err, 
 "ERR\_TXT" =\> $errtxt);
}
?\>

MfG
Manuel

Der Vollständigkeit halber:

<?php function gf_dbconnect()<br />{
 # Funktion "gf\_dbconnect()"
 #
 # Voraussetzungen:
 # Die Variablen $host, $user, $pass, $database und $debugmode
 # müssen im Vorfeld (am besten im Header der Seite) vorbelegt
 # werden.
 #
 # Beschreibung:
 # Öffnet eine Verbindung zu einer MySQL Datenbank
 #
 # Syntax:
 # gf\_dbconnect()
 #
 # Rückgabewerte (Beispiel):
 # $tmp = gf\_dbconnect();
 # $db = $tmp["DB"]; // Handle auf die Datenbank
 # $conerrno = $tmp["ERR\_NUM"]; // ErrNo Connect (\>0 - Verbindung nicht möglich)
 # $sdberrno = $tmp["ERR\_TXT"]; // ErrNo Select\_Database (\>0 - DB nicht vorhanden)
 #
 #
 Global $host, $user, $pass, $database, $debugmode;
 $errtxt="kein Fehler";

 $db = @mysql\_connect ($host, $user, $pass);
 $err = mysql\_errno();

 if($db)
 {
 $result = @mysql\_select\_db($database, $db);
 $err = mysql\_errno();
 }
 if($err0) 
 { 
 $errtxt=mysql\_error(); 
 if($debugmode) { 
 echo "
**FEHLER (#$err):** - \"$errtxt\"
"; }
 }
 return array("DB" =\> $db, "ERR\_NUM" =\> $err, "ERR\_TXT" =\> $errtxt);
}
?\>

Hai, Mike,

Leider kann ich dieses zurückgegebene Ergebnis kein Stück mehr
über meine alt eingesessene techniken auslesen.
(while-Schleife mit mysql_fetch_array) :frowning:

versuchs doch mal mit mysql_fetch_assoc…
Die genaue Spielbeschreibung findest Du hier:
http://de2.php.net/manual/de/function.mysql-fetch-as…

Gruß
Sibylle