Rückgabewerte von Funktionen

Alles rund um PHP und die Datenbanksprache MySQL.

Moderatoren: Thies, Soltano

Antworten
Torak
Newbie
Newbie
Beiträge: 6
Registriert: Mo 20 Dez, 2004 9:20 pm
Wohnort: Wien Umgebung
Kontaktdaten:

Rückgabewerte von Funktionen

Beitrag 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) ;(
Benutzeravatar
Thies
Webmaster
Webmaster
Beiträge: 1482
Registriert: Mo 04 Aug, 2003 8:45 pm
Kontaktdaten:

Beitrag 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
if ( $ahnung == 'keine' ) { use ( Suche ) }
if ( $antwort == 0 ) { post ( $frage ) }
Torak
Newbie
Newbie
Beiträge: 6
Registriert: Mo 20 Dez, 2004 9:20 pm
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag 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 ;)
if ($Programmiersprache = "PHP") && ($Programmierer = "Torak")
make nothing();
else
do Code();
Benutzeravatar
Thies
Webmaster
Webmaster
Beiträge: 1482
Registriert: Mo 04 Aug, 2003 8:45 pm
Kontaktdaten:

Beitrag 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
if ( $ahnung == 'keine' ) { use ( Suche ) }
if ( $antwort == 0 ) { post ( $frage ) }
Torak
Newbie
Newbie
Beiträge: 6
Registriert: Mo 20 Dez, 2004 9:20 pm
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag 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 ;)
if ($Programmiersprache = "PHP") && ($Programmierer = "Torak")
make nothing();
else
do Code();
Benutzeravatar
Thies
Webmaster
Webmaster
Beiträge: 1482
Registriert: Mo 04 Aug, 2003 8:45 pm
Kontaktdaten:

Beitrag von Thies »

Wichtig ist, dass der include vor dem Aufruf erfolgt. Das ist meines Wissens das einzige, worauf man achten muss.

Frank-Andre
if ( $ahnung == 'keine' ) { use ( Suche ) }
if ( $antwort == 0 ) { post ( $frage ) }
Antworten