Ordnerverzeichnis mit Datenbank vergleichen

Dj_PD

Grünschnabel
Hallo,

ich habe mal ein Problem und ich hoffe hier kann man mir weiterhelfen.
Ich merke immer wieder das ich noch kein richtiger php-Programmierer bin, weil das alles noch viel zu kompliziert ist. Ich gebe mir ja eigentlich immer sehr viel Mühe und traue mich schon garnicht mehr in Foren um hilfe zu fragen. Aber ich weiß nicht mehr weiter.

Ich habe ein Arcarde-Modul und wollte ganz gerne das einfügen der Spiele vereinfachen und dazu noch Probleme mit dem hochladen zu großer Spieledateien vernichten.
Derzeit ist das so das man 3 Dateien hochladen muss und das klappt nicht immer da einige *.swf Dateien zu groß sind und dann kommt ein Fehler.
Das Script lädt also 3 Dateien hoch spielname1.gif (kleines Bild), spielname2.gif(etwas großeres Bild) und spielname.swf(Spieledatei)
Die swf-Datei wird in den Ordner "cache" geladen und in dem Ordner "cache" befindet sich noch ein weiterer Ordner "image" wo die beiden Bilder reingeladen werden.
Wenn ich jetzt per Hand ein Spiel einfügen möchte, muss ich folgende Dinge eingeben:
Spieltitel, Kategorie, Hintergrundfarbe für die swf.datei, Spielbreite, Spielhöhe, Spieldatei, Bilddatei (gross), Bilddatei (kein), Spielbeschreibung, Ziel des Spiels und Spieletasten.
Also das finde ich ein bisschen umständlich.

Ich habe mir aber jetzt überlegt das es ja eigentlich auch einfacher gehen müßte. Indem ich einfach bei dem Spiel eine weitere Spieledatei beipacke, die spielename.php und dann bräuchte ich ja nur noch die (jetzt) 4 Dateien hochladen und ich bräuchte ein Script das dann ein Vergleich macht. Er müßte das "cache"-Verzeichnis auslesen und alle Spiele auflisten (vielleicht sogar erst die Spiele zählen, damit das Script weiß wieviel Tabellenzeilen es machen muss). Wenn er das Verzeichnis ausgelesen hat müßte er die Dateiendung weg machen, da in der Datenbank das .swf auch nicht eingetragen ist(also in der Datenbank steht dann nur unter gname nur der Spielname) und er dürfte nur nach swf-Dateien suchen, da sich im cache-Ordner noch andere Dateien befinden.
Wenn das Script dann das Verzeichnis hat müßte er ja in die Datenbank (in die Tabelle arcade_games) und müßte die Spielnamen (gname) auslesen und evtl. sortieren und vergleichen, also ich weiß ja nicht wie man das machen kann. (ein bisschen schwer zu beschreiben). Alle Spiele die in der Datenbank vorhanden sind, sind installiert.
Alle Spiele die nicht installiert sind, müssen noch instaliert werden.
So, ich glaube so wäre das schonmal gut. Jetzt müßte man nur noch in der Tabelle arcade_games die letzte gid (SpieleID) nehmen und die um ein erhöhen, da diese ID ja eine weiterlaufende ID ist, also jedes Spiel bekommt eine ID zugewiesen.
Dann müßte das Script z.B. in den Ordner php gehen und dort suchen ob dort php Dateien gibt die auch zu dem Spielnamen passen, also habe ich ein Spiel 123.swf müßte sich in dem Ordner php auch eine 123.php befinden.
Erst wenn das ist, könnte das Script ein Botton zeigen wo steht "Spiel installieren" sollte keine php Datei dort sein, so muss er dann woll schreiben "Spiel kann nur per Hand eingegeben werden"
In der php Datei befindet sich folgendes(123.php):
Code:
<?php

$config = array(

gname		=>  '123',
gtitle		=>  '123 das coole Spiel',
bgcolor		=>  '000000',
gwidth		=>  '650',
gheight		=>  '600',
active		=>  '1',
gcat		=>  '1',

//optional
gwords		=>  ' Schiese und lerne Mathe ',
object		=>  ' Beschiese so viele 1,2 oder 3 wie nur geht. ',
gkeys		=>  ' Spielt man mit Maus oder tastatur ',

);?>

Wenn ich das Spiel dann installiere, muss er diese Datei auslesen und dann die Daten in die Datenbank einfügen:
Code:
INSERT INTO arcade_games VALUES (gid(ID), 'gname(123)', ' gwords(Schiese und lerne Mathe) ', gcount(0), 'gtitle(123 das coole Spiel)', 'bgcolor(000000)', active(1), gwitdth(650), gheight(600), position(1), cat_id(1), 'objekt(Beschiese so viele 1,2 oder 3 wie nur geht)', 'gkeys(Spielt man mit Maus oder tastatur)', date_addes(0));
Ich habe das hier mal so gemacht das man sieht was was ist, also z.B. gname (= bedeutet die Tabellenspalte) und das in () bedeutet das was das Script einfügt.

So, sollte das sein und das alles muss in einer function rein, da das Script so ausgebaut ist das es dort mehrere function gibt.
Also ich habe mir überlegt ich nenne die function -> function install_game() { }
Jetzt will ich ja nicht das Ihr mir das alles schreibt, nur ich finde den Anfang nicht, wie ich das machen kann.
Deswegen stelle ich jetzt hier mal Fragen:
1) Wäre das so in Ordnung bzw. könnte man das so verwirklichen?
2) Wie kann man den cache-Ordner auslesen und gleichzeitig a) sagen lese nur swf-Dateien aus und b) entferne danach die Endungen?
3) Wie kann man dann das ausgelesende Verzeichnis mit der Datenbank vergleichen? (das ist woll die wichtigste Frage)
4) Wie bekomme ich die letzte gid ausgelesen und kann man diese dann einfach um 1 erhöhen?
5) Hat jemand evtl. noch einige Ratschläge für mich, auf was ich achten muss?

So, vielen Dank erst einmal das Ihr Euch den Text durchgelesen habt.
Und ich hoffe es antworten ein paar Leute.

Gruss
Dj_PD
 

Neue Beiträge

Zurück