• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[ERLEDIGT] Felder aus der Datenbank lesen --> In ein Array --> Doppelte Werte Löschen

Nick

Mitglied
Hallo...

Ich möchte aus zwei Verschiedenen Tabellen Werte raus lesen, die dann in einem Array zusammen fassen, und dann das Array ausgeben...
Leider klappt das nicht...

Hier ist mein Code:

PHP:
echo'
<div class="mitte tuts_auflistung">';
$current = 'Mathe';
echo '<div class="left"><h2>'.$current.'</h2> <h3> F&uuml;r dich: (Klasse: '.$klasse.')</h3>';
$sql = "select * from fragen_1 WHERE klasse='$klasse' AND ober_kat = '$current' group by kat";
$db_erg = mysql_query( $sql );
$count = mysql_num_rows($db_erg);
while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC)){  
  for ($i = 1; $i <= $count; $i++) {     
    $a[$i] = $zeile['kat'];  
  }
 // wenn ich hier ein print_r($a) hinsetze kommt eine komische Ausgabe siehe unten
}
$sql = "select * from fragen_2 WHERE klasse='$klasse' AND ober_kat = '$current' group by kat";
$db_erg = mysql_query( $sql );
$count1 = mysql_num_rows($db_erg);
while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC)){ 
   for ($i = $count+1; $i <= $count+$count1+1; $i++) {    
      $a[$i] = $zeile['kat'];  
   } 
}
$a = array_values(array_unique($a));
$eintraege = count($a);
for ($i = 0; $i <= $eintraege; $i++ ){  
  echo '<a title="lese dieses Tutorial" href="./show.php?which='.$a[$i].'">'.$a[$i].'</a><br/>';
}
if ($count+$count2 < 1){  
  echo 'Hier ist leider noch nichts ver&ouml;ffentlich worden!';
}

Das hier ist die Komische Ausgabe...
Array ( [1] => dKopfrechnen [2] => dKopfrechnen [3] => dKopfrechnen ) Array ( [1] => Geometrie [2] => Geometrie [3] => Geometrie ) Array ( [1] => Kopfrechnen [2] => Kopfrechnen [3] => Kopfrechnen )
Hier liegt also auch der Fehler, denn da 3 Einträge vorhanden sind durchläuft er die for Schleife 3 Mal, und anstatt die anderen Werte hinten dran zu hängen erstellt er scheinbar ein Array im Array... Wie kann ich das ändern?

Erkennt da jemand Sachen im Code die ich verändern könnte/sollte ?

Danke und Schönen Abend noch :)
 
Zuletzt bearbeitet:
Hallo,

zuerst ist der code eher suboptimal.
PHP code bzw SQL sachen haben nichts zwischen html code zu suchen. schau mal nach EVA-Prinzip, das macht das Arbeiten um einiges leichter.

Dein fehler ist die for schleife in der while schleife von der DB.
Ganz einfach die for schleife löschen, denn jetzt passoert das.
- aus DB kommen 3 zeilen die 3 schleifen auslössen <- richtig
- jetzt zählst die Zeilen $count und machst in jeder der normalen 3 schleifen jedes mal 3schleifen mit for und schreibst damit das ergebnis 3mal und so werden aus 3 ergebnise 9.

Cheffchen
 
Zurück
Oben