Hallo zusammen,
ich habe folgendes Problem:
Folgende Funktion liest alle "Ordner" einer SQL-Tabelle "Ordner" aus meiner Datenbank:
Der Code ist eigentlich ganz einfach:
In $CurrOrdner sammle ich die Daten pro Ordner.
Diese Daten lege ich dann als neues Arrayelement in $vz ab.
Wenn ich in der letzten Schleife der Funktion (testweise) die Ordnernamen ausgebe, kommt immer nur der Name des zuletzt gelesenen Ordners raus.
Wenn also die SQL-Tabelle "ordner" die Einträge
1
2
3
als jeweiligen Ordnernamen hat,
Wird beim Ausgeben von $vz immer nur
3
3
3
ausgegeben.
Das Lesen aus der Datenbank funktioniert. Testweise lasse ich oben
$ds->name
ausgeben - und da kommt brav 1 2 3.
Das komische: Auf meinem Testsystem ist PHP 4.3.9 installiert.
DA FUNKTIONIERT ES!
Auf dem "Release"-System mit PHP 5.1.5 kommt der oben beschriebene Fehler.
Ich habe jetzt schon viel nachgeschlagen - aber keine Änderung ggü. von Array in PHP 5 gefunden. Oder mache ich grundsätzlich was falsch??
Danke!
ich habe folgendes Problem:
Folgende Funktion liest alle "Ordner" einer SQL-Tabelle "Ordner" aus meiner Datenbank:
PHP-Code:
function GetDir(){
$vz = array();
global $idordner;
$query = "select * from ordner where idordnerparent = $idordner order by pos, name";
$result = mysql_query($query);
if((!empty($result)) && ($ds = mysql_fetch_object($result))){
do{
echo "\"$ds->name\" "; // alles ok - hier werden alle Namen nacheinander ausgegeben!
// also z.B. "1" "2" "3"
$CurrOrdner->name = $ds->name;
$CurrOrdner->id = $ds->idordner;
$CurrOrdner->partien = $ds->partien;
$CurrOrdner->ordner = $ds->ordner;
$CurrOrdner->LastKommentar = $ds->LastKommentar;
$CurrOrdner->LastPartie = $ds->LastPartie;
$vz[] = $CurrOrdner;
}while($ds = mysql_fetch_object($result));
}
foreach ($vz as $ordner){
echo "\"$ordner->name\" ";
// hier wird IMMER nur der Name (für alle Elemente!) des letzten zugefügten CurrOrdners ausgegeben
// also z.B. "3" "3" "3"
}
return $vz;
}
In $CurrOrdner sammle ich die Daten pro Ordner.
Diese Daten lege ich dann als neues Arrayelement in $vz ab.
Wenn ich in der letzten Schleife der Funktion (testweise) die Ordnernamen ausgebe, kommt immer nur der Name des zuletzt gelesenen Ordners raus.
Wenn also die SQL-Tabelle "ordner" die Einträge
1
2
3
als jeweiligen Ordnernamen hat,
Wird beim Ausgeben von $vz immer nur
3
3
3
ausgegeben.
Das Lesen aus der Datenbank funktioniert. Testweise lasse ich oben
$ds->name
ausgeben - und da kommt brav 1 2 3.
Das komische: Auf meinem Testsystem ist PHP 4.3.9 installiert.
DA FUNKTIONIERT ES!
Auf dem "Release"-System mit PHP 5.1.5 kommt der oben beschriebene Fehler.
Ich habe jetzt schon viel nachgeschlagen - aber keine Änderung ggü. von Array in PHP 5 gefunden. Oder mache ich grundsätzlich was falsch??
Danke!
Kommentar