dark_ghost
Erfahrenes Mitglied
Hallo zusammen,
ich habe mir eine Funktion geschrieben, die für jeden Monat einen speziellen Datensatz aus der DB selektiert.
Es kann aber auch vorkommen, dass für den aktuellen Monat noch kein Datensatz vorhanden ist. In diesem Fall soll sich die Funktion nocheinmal selbst aufrufen und den Datensatz vom vorherigen Monat selektieren - Rekursiv quasi.
Problem ist folgendes.
Die Funktion ruft sich zwar selbst auf und gibt auch den richtigen Parameter mit nur funktioniert die rückgabe per return nicht (ich kann mir die selektierten daten innerhalb der funktion allerdings mit print_r ausgeben lassen).
Hier der Code
Aufgerufen wird die Funktion so -> GetPotm(date("m"));
Soll also den Datensatz für den aktuellen Monat selektieren, in meinem Falle (zum testen eben) ist für den aktuellen Monat kein Datensatz vorhanden. Die Funktion sollte sich also selbst aufrufen, was sie auch tut - denn die Daten kann ich per print_r ausgeben lassen. Nur die Übergabe der Daten funktioniert leider nicht und ich komm nicht dahinter.
Noch zu erwähnen ist, dass wenn ich die Funktion gleich mit GetPotm(date("m")-1); aufrufe, also dass gleich der Datensatz vom letzten Monat selektiert werden soll, funktioniert die übergabe.
Über Tipps und Anregungen freue ich mich.
Gruß
ich habe mir eine Funktion geschrieben, die für jeden Monat einen speziellen Datensatz aus der DB selektiert.
Es kann aber auch vorkommen, dass für den aktuellen Monat noch kein Datensatz vorhanden ist. In diesem Fall soll sich die Funktion nocheinmal selbst aufrufen und den Datensatz vom vorherigen Monat selektieren - Rekursiv quasi.
Problem ist folgendes.
Die Funktion ruft sich zwar selbst auf und gibt auch den richtigen Parameter mit nur funktioniert die rückgabe per return nicht (ich kann mir die selektierten daten innerhalb der funktion allerdings mit print_r ausgeben lassen).
Hier der Code
PHP:
function GetPotm($month)
{
//Aktuelles POTM ermitteln
$data = mysql_query("SELECT `pic_id`, `album_id`, `pic_filename`, `pic_views`
FROM `media_pics`
WHERE `album_id`=(SELECT `album_id` FROM `media_albums` WHERE `album_type`='potm' AND `album_date`='".date("Y")."')
AND `pic_date`='".mktime(0, 0, 0, $month, 1, date("Y"))."' ");
if(mysql_num_rows($data) == 0){
GetPotm(date("m")-1);
}
else{
return mysql_fetch_assoc($data);
#print_r(mysql_fetch_assoc($data));
}
} //end GetPotm
Aufgerufen wird die Funktion so -> GetPotm(date("m"));
Soll also den Datensatz für den aktuellen Monat selektieren, in meinem Falle (zum testen eben) ist für den aktuellen Monat kein Datensatz vorhanden. Die Funktion sollte sich also selbst aufrufen, was sie auch tut - denn die Daten kann ich per print_r ausgeben lassen. Nur die Übergabe der Daten funktioniert leider nicht und ich komm nicht dahinter.
Noch zu erwähnen ist, dass wenn ich die Funktion gleich mit GetPotm(date("m")-1); aufrufe, also dass gleich der Datensatz vom letzten Monat selektiert werden soll, funktioniert die übergabe.
Über Tipps und Anregungen freue ich mich.
Gruß
Zuletzt bearbeitet: