Jeena Paradies: Hash aus DB erstellen

Beitrag lesen

Hallo,

1.) Du suchst keinen Hash. Ein Hash ist üblicherweise eine Prüfsumme über bestimmte Daten, die man nutzt um Fehler oder Veränderungen in den Daten identifizieren zu können ohne den kompletten datensatz wieder 1:1 vergleichen zu müssen.

Ich suche nach einer Möglichkeit ein Assoziatives Array zur Datenhaltung zu erstellen, auch Dictionary, Map, oder eben Hash genannt. Sorry wenn das undeutlich rüberkam.

2.) Deine Problembeschreibung ist äußerst schwer verständlich. Du erklärst nicht was die einzelnen Datensätze sein sollen

Jeder Datensatz in der DB soll ein Tor darstellen. Die Tore sollen dann mit COUNT(*) schon von der Datenbank für jeden state pro team und game zusammengerechnet werden. So dass dann in etwa so eine Tabelle herauskommen sollte:

game_id | team_id | state_id | goals

und dein gewünschter Ergebnissarray ist auch alles andere als eindeutig, sondern lässt sehr viel Interpretationsspielraum welche Daten du jetzt eigentlich wo hin haben willst.

Hm. Also im Prinzip möchte ich die Datenbank so abbilden, dass ich sehr schnell auf die einzelnen Daten zugreifen kann. Ich möchte zum Beispiel schnell und einfach auf die Anzahl der Tore im Spiel #122 der Mannschaft #23 wärend Status auf 1 war feststellen, oder die Tore aller Staten zusammenrechnen können um das Endergebniss zu bekommen. Wie jetzt der Hash am ende genau aussieht ist eigentlich egal. Es wird auch nie wieder in den Hash geschrieben sondern nur noch gelesen, nachdem er erstellt worden ist.

Aber wenn ich mir die Tabelle so angucke die da rauskommt, dann wäre es doch eigentlich einfach so zu machen (in PHP jetzt als Beispiel):

while ( $row = $db->fetch() ) {  
 $games[ $row['game_id'] = array(  
  $row['team_id'] => array(  
    $row['state_id'] => $row['team_goals']  
   )  
 );  
}

Wenn ich dann auf die Anzahl der Tore aus Spiel #3 des Teams #21 in state #1 zugreifen möchte kann ich das darüber machen:

echo $games[3][21][1];

und wenn ich alle Tore dieses Teams in diesesm Spiel haben möchte, dann:

$all_goals = 0;  
foreach ( $games[3][21] AS $goals ) {  
 $all_goals = $all_goals + $goals;  
}  
echo $all_goals;

Grüße
Jeena Paradies