php/mysql

Übersicht Sonstiges Smalltalk

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

Rubber

Betreff: php/mysql

BeitragDi, Jan 30, 2007 17:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist es möglich, auch an eine mysql datenbank daten zu senden, außer über php, wenn sich zb die daten alle 2min. ändern und aktualisiert werden müssten, müsste ich das ja manuell machen, aber geht das nciht auch anders?

wäre überrückantworten dankbar...
Wenn Gott mich schon liebt, dann dich erstrecht...

Christoph

BeitragDi, Jan 30, 2007 17:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Du willst die Daten alle 2 Minuten aktualisieren? Shocked

Nun ja, manche Anbieter bieten an, php-Dateien regelmäßig auszuführen (heißt das nicht irgendwie Cronjobs oder so ähnlich???) aber ob jemand bereitwillig ist, das alle 2 Min zu machen weiß ich nicht.

Eine andere (bessere) Lösung fällt mir gerade nicht ein.
 

flashmaxel

BeitragDi, Jan 30, 2007 17:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Dafür gibts eine Dll namens SqlLite oder so. Such mal auf blitzbasic.com ...

Cu Max

Edit : Geht eigentlich nur wenn du mit einer localen Datenbank arbeitest oder du musst beim Server einstellen das man von außen auf die Datenbanken zugreifen kann - bei Free Anbietern geht das meist nicht ...
Real C programmers never die; they cast to void.
 

Rubber

BeitragDi, Jan 30, 2007 17:50
Antworten mit Zitat
Benutzer-Profile anzeigen
na, es ist so, das ich es mir als ziel gesetzt habe innerhalb der nächsten 2 jahre nen eigenes online game zu proggen...

an dieser stelle möchte ich darum bitten, jetzt solche kommentare wie "das schaffst nciht" zu unterlassen, denn mir ist bewusst, das es nciht leicht ist. Ich bin trotzdem gewilt das zu schaffen und werde dies auch...

nun ist es so, das (logischerweise) Rostoffe zum bauen der gebäude usw. zur verfügung stehen müssen...

diese aber nur jede stunde zu vermehren wäre doof....

deshalb, möchte ich das automatisch machen und nach möglichkeit auch schneller als alle 2 in.

das ich einen server dazubrauche, ist mir auch bewusst, da zb das programm was die resis berechnen soll, lokal auszuführen meinen pc belegen würde und ab einer gewissen zahl von berechnungen wohl nciht mwehr möglich wäre...

diese rohstoffe sollen nun aber noch in die mysql datenbank...

wie schaff ich das, ich könnte das zwar auch mit dateinen amchen, aber das wär wohl schwachsinn...


vllt. kennt der ein oder andere ja zb ogame oder tdm, oder inselkampf...
bei diesen spielel ist es genauso...
und aus meiner sicht haben die auch alles in einer datenbank gespeichert...

mfg
und danke für eure aufmerksammkeit
Wenn Gott mich schon liebt, dann dich erstrecht...

BtbN

BeitragDi, Jan 30, 2007 18:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Für ein Online-Game ist eine MySQL-Datenbank nicht so das wahre, da must du schon einen echten server schreiben, und auch nicht über PHP, das wäre für ein Online-(Rollen?)-Spiel der overkill.
 

Rubber

BeitragDi, Jan 30, 2007 18:22
Antworten mit Zitat
Benutzer-Profile anzeigen
es sol nen online startegie spiel sein und php mit html zum anzeigen....
wie meinst das mit dem server?
und wenn nciht mit mysql wie dann?
Wenn Gott mich schon liebt, dann dich erstrecht...

Pdd

BeitragDi, Jan 30, 2007 18:27
Antworten mit Zitat
Benutzer-Profile anzeigen
html zum anzeigen? Warum machst du es dann nicht komplett ohne BB? Einfach nur PHP/MySQL/CSS/(JS)
Lieber Apfel als Birne.

Jolinah

BeitragDi, Jan 30, 2007 18:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

Es wäre gut wenn du das ein bisschen genauer erklären könntest Wink

Ist es ein reines Web- bzw. Browsergame? Wird die Grafik im Browser ständig aktualisiert (Java-Applet etc.) oder nur wenn die Seite neu geladen wird?

Je nachdem wie das ganze funktioniert gibt es auch unterschiedliche Lösungen. Wenn die Grafik ständig aktualisiert werden soll - wie bei normalen PC-Games - dann brauchst du wahrscheinlich auch einen richtigen Server der ununterbrochen mit den Clients (Java-Applet) per Netzwerksockets kommuniziert.

Wird die Grafik nur aktualisiert beim Neuladen der Seite, so würde wahrscheinlich ein normaler Webserver als Spielserver reichen, da immer nur etwas neues geschieht wenn der Server eine Anforderung erhält.

Es gibt inzwischen auch die Möglichkeit per Javascript eine neue Seite im Hintergrund anzufordern, das heisst die Seite die bereits geladen ist bleibt geladen und der Benutzer merkt nicht dass im Hintergrund etwas gemacht wird. Damit könntest du ein PHP-Skript aufrufen dass Werte in die Datenbank speichert, ohne dass die aktuelle Seite verschwindet. Das nennt sich AJAX (gibt evtl. noch andere Bezeichnungen).
 

Rubber

BeitragDi, Jan 30, 2007 20:33
Antworten mit Zitat
Benutzer-Profile anzeigen
hm...
also ein browsergame setzt sich eigentlich eigentlich aus 2 phasen zusammen:

1. das hintergrund programm (berechnet zb die rohstoffe, die pro minute berechnet werden, oder flotten, wann die ientraffen.....)

2. Die anzeige...,
Wenn Gott mich schon liebt, dann dich erstrecht...

Jolinah

BeitragDi, Jan 30, 2007 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, das ist bei den meisten Client-Server-Anwendungen so Wink Die Frage war aber wie du die Anzeige machen willst?

Wenn das immer in Echtzeit aktualisiert werden soll, brauchst du auch nen anderen Server als wenn die Seite mehrmals neu geladen wird und ein bisschen Text und Grafiken angezeigt werden etc.

Ich habe z.B. schon richtige 2D-Online-Rollenspiele (Browsergame) gesehen die mit Java programmiert wurden. Das sind dann im Grunde normale PC-Spiele (mit Echtzeitgrafik).

Andererseits gibt es diese anderen Browsergames die halt rein HTML-gesteuert sind und immer wenn man nen Button etc. anklickt wird dann die Seite neu geladen.

Artemis

BeitragDi, Jan 30, 2007 21:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Für kleine Spiele reicht PHP+MySQL+Cronjobs auf einem Webspace aus.
Für größere Projekte sollte es schon ein ganzer Server sein, eventuell mit JSP als Server-Sprache.
Und für ganz große Projekte muss ein guter Server her, mit C oder einer ähnlichen Sprache für das Backend.

peacemaker

BeitragDi, Jan 30, 2007 21:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Mmh.
Solche Cronjobs (oder wie auch immer) gibts bei Gratisanbieter nicht.

Is ja logisch, sonst würde deren Server überlastem.

Ich würde es so machen, das die Zeit in einer txt-Datei gespeichert wird.
also fgets und fopen usw.

Dann wird die Datei jedes mal bei start des Scriptes gecheckt.
Das wird dann mit Date (h) verglichen und wenn es + 2 is dann ja das machen was du willst.

MfG
~Tehadon~
www.tehadon.de
http://www.blitzforum.de/worklogs/14/

Artemis

BeitragDi, Jan 30, 2007 21:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Man sollte sich über eins im klaren sein: Wenn man vor hat, ein Browser-Game zu schreiben, sollte man kein Gratis-Hoster benutzen, egal welchen.
 

Rubber

BeitragDi, Jan 30, 2007 21:53
Antworten mit Zitat
Benutzer-Profile anzeigen
hab ich auch nciht vor....

die anzeige, ist ich sag mal mein kleinstes problem...

es soll son browsergame mit html anzeige werden (zt javasribt-counter zb bis die flotte weider da ist)

das große prob ist, das ich ein hintergrundprogramm (zb in BB - dann brauch ich nen windows server/ Java - plattformunabhänig) brauche, und dieses die resis berechnet (diese müssen ja immer aktuell sien, da ich auch geattet werden kann, wärend ich nicht on bin) und diese müssen dann in eine datenbank....
Wenn Gott mich schon liebt, dann dich erstrecht...

BtbN

BeitragDi, Jan 30, 2007 22:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Lass das doch einfach von PHP-Scripten berechnen.
Und solang die kein User aufruft, braucht auch kein User die Daten die sich berechnen sollen Wink

Pdd

BeitragDi, Jan 30, 2007 22:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Peacemaker1 hat Folgendes geschrieben:
Mmh.
Solche Cronjobs (oder wie auch immer) gibts bei Gratisanbieter nicht.
MfG


Eine Absolute Fehleinschätzung. Es gibt durchaus gratis Cronjobs, als Extra Dienste, sowie schon beim Anbieter dabei! Ich selbst benutze solch einen (oder habe benutzt). Zum Thema Ressourcen-Zählung. Einfach den Aktuellen Wert + Aktuelle Zeit per PHP in einen Div-COntainer ausgeben, dessen style-visibility auf hidden ist. Dann per JS diesen Wert auslesen und mit der Zeit dann hochrechnen. So muss die MySQL atenbank nur ungefähr alle 30 mins aktualisiert werden (Cronjob) oder eben bei einer Aktion des Benutzers. Den Rest erledigt der Client per JS.
Lieber Apfel als Birne.

peacemaker

BeitragDi, Jan 30, 2007 23:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok. Sry dann bin ich etwas hinten nach.

In den Buch PHP und MySQL für Kids (jaja "für Kids") ist das so gestanden.

MfG
~Tehadon~
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
 

Rubber

BeitragMi, Jan 31, 2007 11:21
Antworten mit Zitat
Benutzer-Profile anzeigen
na, ich glaube, ihr versteht nciht genau, worum es mir geht..........

also:
die anzeige ist mir egal (da hab ich schon ideen ohne ende Wink )

aber bei dem programm, was die resis berechnet (die zb alle 2 min. aktuallisiert werden sollen) hab ich das problem, das ich nciht weis, wioe ich die berechneten werte in die daten bank speichern kan....

alyso eigentlich kann man sagen, ich hab 1 dokument und die DB und will jetzt, das automatisch alle 2 min. das dokument in die DB eingetragen wird......

was tun?
Wenn Gott mich schon liebt, dann dich erstrecht...

Jolinah

BeitragMi, Jan 31, 2007 12:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, ich versuche meine Frage nochmal anders zu formulieren Very Happy

Ist dein "Programm" jetzt wirklich ein Programm, sprich eine EXE, oder meinst du mit "Programm" ein PHP-Skript?

Das ist es was ich eigentlich mit meiner Anzeige-Frage herausfinden wollte.

Bei PHP ist es ja nicht all zu schwer: Du erstellst ein Skript dass immer (bei jedem Spieler) ausgeführt wird. Dieses berechnet die Resis und schreibt diese in die DB. Zusätzlich wird auch noch die Zeit irgendwo in die DB gespeichert. Das Skript prüft dann einfach ob schon 2 Minuten vergangen sind und berechnet nur dann die Resis. Dann kann es 100 mal pro Sekunde aufgerufen werden und die Resis werden trotzdem nur alle 2 Minuten berechnet. Und wenn kein Spieler online ist wird es halt gar nicht berechnet, bis wieder mindestens einer spielt.

Beispiel:
Code: [AUSKLAPPEN]
$db = mysql_connect("localhost","user","pw");
mysql_select_db("datenbank_name",$db);

$query = "SELECT LastUpdate FROM Table1 LIMIT 1";
$res = mysql_query($query, $db);
$row = mysql_fetch_array($res);

if (time() - $row["LastUpdate"] > 120)
{
    // Berechne Resis wenn 2 Minuten (120 s) vergangen sind..

    // Trage Resis in DB ein
    $query = "UPDATE Resis SET Feuerresistenz=90 WHERE SpielerID=10";
    mysql_query($query, $db);

    // Trage neue Zeit in DB ein
    $query = "INSERT INTO Table1 (LastUpdate) VALUES (" . time() . ")";
    mysql_query($query, $db);
}

mysql_close($db);


Und wenn es ein normales Programm ist, dann benötigst du die MySQL Lib um dich mit dem MySQL-Server zu verbinden. Das Programm muss dann da laufen wo auch der MySQL-Server läuft. Wenn nicht, dann muss der MySQL-Server externen Zugriff auf die Datenbank erlauben.

Bei nem Programm könntest du die 2 Min dann natürlich direkt im Programm überprüfen.

Beispiel:
Code: [AUSKLAPPEN]
LastUpdate = millisecs()

;Hauptschleife
Repeat
   ...

   If millisecs() - LastUpdate > 120000

     ;Berechne Resis
     mysql_query("INSERT INTO....")

     LastUpdate = millisecs()
   EndIf
   ...
Until Keyhit(1)


PS: Die Lib richtig einzubinden bzw. zu verwenden ist aber nicht ganz so einfach wie ich es im Beispiel dargestellt hab.
 

Rubber

BeitragMi, Jan 31, 2007 14:36
Antworten mit Zitat
Benutzer-Profile anzeigen
die erste idee, find ich nicht schlecht, hab mich aber für nen extra programm (exe) entschieden Wink

jetz kapier ich auch, wie du das meintest...
danke....

funzt das mit dem extra programm den unter allen programmier sprachen???

bei BB kann ich mir das zb nciht vorstellen...
Wenn Gott mich schon liebt, dann dich erstrecht...

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group