Frage zu einem Datenbankanfrage "Select..." mit der Erweiterung MySQLi

Davicito

Erfahrenes Mitglied
Hallo,

mit dem Ausprobieren der neuen Erweiterung mit MySQLi bin ich auf ein Problem gestoßen bei dem ich nicht weiter komme.
Bei dem folgenen SELECT...
PHP:
$sqlStatement = "select 
				ma.Vorname,
				ma.Nachname,
				ma.Telefon,
				ma.Handy,
				ma.Email,
				anr.Anrede																	
			    FROM 
				mitarbeiter AS ma,
				anrede AS anr
			   WHERE									
				ma.Anrede_ID = anr.Anrede_ID";

//Prüfe, ob Statment erfplgreich übermittelt wurde.
if($result = self::$resDB->query($statement)){
	$result->num_rows;
	
	$tmp = $result->fetch_row();
					
	foreach($tmp as $key){
		echo $key;
		//var_dump($key);						
	}	
}else return 'Fehler im Statement!';

müssten 18 Datensätze angezeigt werden.
er Zeigt mir aber nur den ersten an.
Wenn ich mit result ausprinte, dann zeigt mir das object auch int(18) an

PHP:
...
//Prüfe, ob Statment erfplgreich übermittelt wurde.
if($result = self::$resDB->query($statement)){
	var_dump( $result->num_rows);
	
	$tmp = $result->fetch_row();
					
	foreach($tmp as $key){
...

Und wenn ich in der Zeile mit var_dump($result->num_rows) nur var_dump($rasult); hinschreibe wird mir die object-Option ausgegeben.
PHP:
object(mysqli_result)#7 (5) { ["current_field"]=> int(0) ["field_count"]=> int(6) ["lengths"]=> NULL ["num_rows"]=> int(18) ["type"]=> int(0) }

Wie also werden mir jetzt alle 18 Datensätze angezeigt?

Mit den alten mysql-Befehlen ging das alles viel unkömplizierter!

LG, Davicito.
 
Du musst über das Resultset loopen. mysqli::fetch_row() liefert nur einen Datensatz zurück. Daher heißt das auch fetch_ROW ;-) Mach doch mal

PHP:
while( $tmp = $result->fetch_row() ) {
  foreach($tmp as $key => $value) {
    echo "$key => $value<br/>";
  }
}
 
Ja danke Dir... hat prima geklappt.

Wieso muss das so bläd gemacht sein?!

Naja ich werd mal ein bisschen drüber nach denken ^^

LG.
 
Zurück