PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mysql_fetch_array und Klassen Problem.


Diabolo
31.10.2003, 16:47:28
Hallo, ich habe gerade einen mega Blackout und versuche folgendes zu realisieren. Ich hab mir eine Klasse für einen Datenbankzugriff geschrieben. in der folgende Methode, mir die Inhalte einer DB zurückgeben soll.

Teilscript:
function ReadDatabase($sqlString){
$dbh = Database::DatabaseQuery();
$errorFile = "conf/msg.conf";

if($dbQuery = mysql_query($sqlString, $dbh)){
$dbValue = mysql_fetch_row($dbQuery);
}else{
$errorString = new ReadConfigFile();
$dbValue = $errorString-> GetFileContent($errorFile, "DatabaseError");
}

$this -> dbValue = $dbValue;
return $this -> dbValue;
}



in einer Weitern Klasse sollen diese Werte jetzt verarbeitet werden.

Leider ist eine Schleife wie


while($value = mysql_fetch_row($dbQuery)){
foreach($value as $var){
print $var;
}
}

nicht mehr möglich des Weiteren wolte ich mir das ewige schreiben von $value = mysql_fetch_row($result) sparen :)

Jetzt hab ich aber das Problem, das ich die Inhalte nicht mehr richtig ausgeben kann. Ich bekomme was ich auch mache immer nur die ersten werte die in der Tabelle stehen. nicht aber was danach folgt. Ich hoffe ihr könnt mir folgen.

Anstelle von
Otto, Meier
Hanz, Müller

Bekomme ich nur die Werte

Otto, Meier.

Ich hänge jetzt ein bisschen und komme nicht weiter, kann einer von Euch etwas helfen? Das wäre echt Super.

Thx

Michael

dgalien
05.11.2003, 09:50:25
Hmmm, bist Du Dir sicher das Otto Meier ausgegeben wird?

Denn wenn du zuerst die readDatabase funktion aufgerufen hast.
wurde die Zeile mit Otto Meier in deiner If abfrage schon ausgelesen. und der "Datenbankzeiger" springt eine Zeile weiter.

wen Du danach dbQuery weiter ausliest, ist klar, dass wenn du nur noch einen weiteren Eintrag in der DB hast nur noch eine Ausgabe folgt (dann müsste normalerweise Hanz Müller kommen).

Kann auch sein dass ich falsch liege, aber leg doch einfach noch mal ein zwei Datensätze an. (2 iss zum testen eh meist zuwenig) und probier dein Code nochmal aus.

Es dürfte immer der erste nicht mit ausgegeben werden (nach deinem Code zumnindest)