You are not logged in.

  • Login

1

Friday, August 20th 2010, 9:33am

PHP assoziatives Array in MySQL Datenbank

Hallöchen zusammen, hoffentlich könnt ihr mir helfen =).

Ich habe vor eine Download-Datenbank zu programmieren.

Ich muss zum Verständnis erstmal etwas weiter ausholen:

Es gibt dieses PC-Spiel Starcraft2.
Da kann man in kleinen Dateien nach einem gespielten Spiel ein "Replay" speichern. Dieses kann man laden und das Spiel nochmal ansehen.

Es exisitiert ein PHP-Parser für diese Replaydateien:
http://code.google.com/p/phpsc2replay/
Der parst aus diesen Dateien, Spieler, Rasse, wer gewonnen hat, auf welcher Karte gespielt wurde, wielang die Spieldauer war etc.
nach zu lesen in den parsables:
http://code.google.com/p/phpsc2replay/wiki/Parseables

Einzelne Funktionen die mir einfache Werte wiedergeben die ich in einer MySQL-Datenbank unter VARCHAR etc. ablegen kann sind einige dabei.
Leider... ->
Spieler, ihre Rasse, Farbe und soweiter angeht, wird durch den Parser mit einem Assoziativen Array abgehandelt.
Meinetwegen:
Spieler1 spielt als Zerg und hat die Farbe rot
Spieler2 spielt als Terraner und hat die Farbe blau

Ich weiss nun leider nicht wie ich ein assoziatives array da in eine Datenbank verwursteln soll. Ich hab für sowas natürlich schon gegoogelt und lösungansätze gefunden, wie z.B.
Das assoziative Array im json-format in ein text-feld zu speichern und dann neu auszulesen (deserialisierung nennt man das oder so?).

Leider weiss ich auch nicht wie man assoziative Arrays ins json format übergibt.

Im Endeffekt solls fast so aussehen wie bei diesem Script, es ist ein anderes Spiel der gleichen Firma, in dem es auch Replays gibt, die in dem Script geparsed wurden und in eine Downloaddatenbank übergeben wurden.

http://replays.orcishempire.de/

nur halt für Starcraft2

2

Saturday, August 21st 2010, 7:19am

Weißt du wie Datenbanken aufgebaut sind, also aus Tabellen mit Spalten und Zeilen?
Ich denke, darin sollten sich eindimensionale Arrays super speichern lassen:

Source code

1
2
3
4
5
6
7
|--------------------------------|
|Spieler   |Rasse     |Farbe     |
|--------------------------------|
|Spieler1  |Zerg      |Rot       |
|--------------------------------|
|Spieler2  |Terraner  |Blau      |
|--------------------------------|

Und wenn du später mittels mysql_fetch_assoc() die Daten wieder abfragst, dann hast du einen assoziativen Array mit den Spaltennamen als Feldnamen.

3

Saturday, August 21st 2010, 9:48am

falls sich die Daten je nach StarCraft Version aber ändern, und du 100% flexibel sein willst, dann kannst du auch einfach 2 Tabellen verwenden

Tabelle1:
datensatzid name

Tabelle2:
datensatzid schlüsselt wert

damit kannst du alles speichern und bist flexibler als mit JSON - kannst also mit MySQL nach Werten Suchen, Gruppieren und ähnliches.

Similar threads

Social bookmarks