Seite 1 von 1

Rückgabewerte von Funktionen

Verfasst: Mo 20 Dez, 2004 9:31 pm
von Torak
Ich hab in einem PHP File diese Funktion:
[php]function Ort($DBName)
{
$query = "Select * From $DBName";
$result = mysql_query($query);
if ( !$result )
print "vars.Ort.L20 Fehler: ".mysql_error()."<BR>";
else
{
$fMenge = mysql_num_fields($result);
$rMenge = mysql_num_rows($result);
for ($y=0;$y<$rMenge;$y++)
{
$row[$y] = mysql_fetch_row($result);
}
return $row;
}
}[/php]

Aber wenn ich nun diese Funktion in einem anderen PHP File aufrufe, wo diese PHP Datei via "include" übergeben wurde. So liefert mir diese einfach nichts zurück. Weiß einer wie ich das am besten löse bzw. was ich daran falsch mache ?

Danke im vorraus

P.S.: Das Zweidimensionale Array ist einfach nur leer (Leerstring) ;(

Verfasst: Mo 20 Dez, 2004 9:47 pm
von Thies
Ohne den Rest, der die übergebenen Daten verarbeitet, kann man nicht viel erkennen, ich glaube noch nicht mal, dass es an der function liegt, müsste das aber erst testen :)

Bist Du denn sicher, dass Daten vorhanden sind. Resp.: Du weisst, dass Du nun "komplizierte" Arrays hast, oder. Vor der Zeile

return $row

füge mal

print_r($row) ein und schaue Dir mal das Ergebnis an. Dann weisst Du was ich meine.


Ausserdem würde ich die Routine etwas umstellen:

Anstelle

[php] $rMenge = mysql_num_rows($result);
for ($y=0;$y<$rMenge;$y++)
{
$row[$y] = mysql_fetch_row($result);
}
return $row;
[/php]

würde ich

[php]while ($rowset = mysql_fetch_array($result))
{
$row[] = $rowset;
}
[/php]
Dürfte etwas schneller sein. Schau mal nach unter http://de.php.net/manual/de/function.my ... -array.php

CU

Frank-Andre

Verfasst: Di 21 Dez, 2004 8:18 am
von Torak
Naja, wenn ich mir die einzelnen Werte in der Schleife ausgeben lasse, kommen eh die richtigen Werte, nur wenn ich die dann in der Hauptfunktion via $wert = Ort(Übergabeparameter); aufrufe ist dann $wert einfach nur leer ;)

Toll: In PHP kann man nicht einfach Funktionen mit rückgabewerten von includierten Dateien verwenden, da müsste ich für jede Funktion eine eigene PHP Datei schreiben. Da kopier ich mir lieber die Funktion jedesmal am Anfang hin ;)

Aber danke für den Tipp ;)

Verfasst: Di 21 Dez, 2004 8:25 am
von Thies
Also ich habe meine Funktionen alle ausgelagert in eine function.inc.php und kann hervorragend damit arbeiten (auch nach dem includen). Verstehe daher nicht so ganz, warum das bei Dir nicht geht .....

Frank-Andre

Verfasst: Di 21 Dez, 2004 8:47 am
von Torak
Hmm, echt komischt. Wie machst du dass denn das diese Funktionen einen Wert an die aufrufende Funktion zurückliefern ?

Keine Ahnung was ich jetzt gemacht habe aber es funkt jetzt ;)

Verfasst: Di 21 Dez, 2004 11:19 am
von Thies
Wichtig ist, dass der include vor dem Aufruf erfolgt. Das ist meines Wissens das einzige, worauf man achten muss.

Frank-Andre