MYSQL Wert erhöhen

  • Themenstarter Themenstarter koronyl
  • Beginndatum Beginndatum
Okay habe mich jetzt bei Cronjob.de angemeldet...
Aber ich verstehe nicht wie ihr das meint?
Welchen code zur Aktualisierung?

Irgendwie funktioniert das nicht mehr....

PHP:
<?php
$host = "localhost";
$user = "clonewars_01";
$pass = "kakabumschika";
$dbase = "clonewars_01";
$db = mysql_connect($host, $user, $pass) or die ("Verbindung fehlgeschlagen");
      mysql_select_db($dbase, $db) or die ("Verbindung zur datenbank fehlgeschlagen");


         function updateKaserne()
      {

     $update = "UPDATE Gebaeude set Kaserne = Kaserne + 1 where id = 1";
     $eintragen = mysql_query($update) or die("Update: ". mysql_error());
     echo mysql_error();
      }


if($Kaserne="yes")
         {
         updateKaserne();
         }

       $select = "select * from Gebaeude";
    $result = mysql_query($select,$db);

 while($row = mysql_fetch_array($result))
 {




 echo "Die Kaserne ist auf Stufe ".$row['Kaserne']."";
  }

       ?>
      <p><a href="<?echo $PHP_SELF."?Kaserne=yes"; ?>">Kaserne ausbauen</a></p>
 
Jedoch, denke ich nicht das es in dieses Fall notwendig ist, oder irre ich mich?

Kann ich nicht sagen, weil ich noch nicht weis, was er vor hat.

Welchen code zur Aktualisierung?

Zunächst was zu lesen: http://de.wikipedia.org/wiki/Cron

Bei Cronjob .de kannst du eine URL angeben die aufgerufen werden soll.
Das wäre dann eine URL zu einer PHP auf deinem Server.
Und diese PHP ist dein Script, dass das macht was du jede Minute machen möchtest:
PHP:
<?PHP
mysql_query("UPDATE aber SOFORT!");
?>

Wenn jemand die URL zu dieser PHP rauskriegt ist dein Vorhaben natürlich für Popo also kannst du folgende Prüfung am Anfang machen:
PHP:
if ($_GET["ausgedachter_get"] != "ausgedachter_wert")
{
  exit();
}

Das macht es nicht absolut sicher, aber etwas sicherer ;)

Was genau hast du denn vor?
Was ist der Sinn dieser minütlichen Aktualisierung?

EDIT: Und bitte lass mal diese Doppelposts. Das war glaub ich schon der zweite in diesem Thread.
kuddeldaddeldu hat dir vorhin gesagt, du sollst dir die UPDATE-Syntax ansehen. Blätter mal zurück und schau es dir an.
 
Zuletzt bearbeitet:
Es soll in der MYSQL Tabelle eine Spalte Credits geben...
Diese Credits sollen sich nach der Planetenanzahl vom Spieler richten zB. nimmt ein Spieler einen Planeten ein erhält er zB. 1000 Credits mehr die automatisch auf der Datenbank gespeichert werden sollen...Dieser Vorgang soll möglichst jede Minute passieren also bekommt der Spieler jede Minute 1000:60 also 16,66666...
Credits jede Minute gerundet dan 17 :)
 
Ich würde sogar $_SERVER[REQUEST_URI] empfehlen.
Das alles jede Minute für X-User wird ne Belastung ohne ENDE
 
Dieser Vorgang soll möglichst jede Minute passieren also bekommt der Spieler jede Minute 1000:60 also 16,66666...
Credits jede Minute gerundet dan 17 :)

Du kannst in SQL-Anweisungen andere Felder zur Berechnung durchaus einbeziehen:
Code:
UPDATE `tabelle` SET `feld` = `anderes_feld` * 1000 / 60
Womit du, wie schon erwähnt, SQL quälst. Die Rangliste einmal am Tag oder einmal pro Stunde zu aktualisieren reicht völlig. Damit der User denkt, es wäre immer aktuell wird er beim Anzeigen einfach an die richtige Position mit seinen aktuellen Punkten eingefügt, die es ja sicherlich in der Session gibt.

Dabei hoffe ich aber auch, dass man bei deinem Spiel Planeten abnehmen / einnehmen kann. Weil die Rangliste sonst sehr eintönig wird je weiter das Spiel / die Runde schon ist.
 
Und was ist mit meinem Problem?
Es funktioniert nicht mehr...
Also er zeigt ja die echo angabe nicht an und erhöht nicht den Wert
 
Funktioniert die SQL-Anweisung für das aktualisieren denn so in phpMyAdmin oder ähnlichem?

Wird ein anderes echo (z.B. "echo PHP_VERISON;" ) denn ausgegeben?
Es ist verständlich, dass echo *_error nichts ausgibt wenn kein Fehler vorliegt. Daher denke ich da passt was mit dem Query nicht.

Ist die Verbindung hergestellt? Die Datenbank ausgewählt?

Einfach mal Schritt für Schritt nachschauen, testen, prüfen um den Fehler einzugrenzen.
 
An der Verbindung liegts nicht.
Hier mal die MYSQL TAbelle:
Tabelle.jpg
und mein momentaner code:

PHP:
<?php
$host = "localhost";
$user = "###";
$pass = "###";
$dbase = "###";
$db = mysql_connect($host, $user, $pass) or die ("Verbindung fehlgeschlagen");
      mysql_select_db($dbase, $db) or die ("Verbindung zur datenbank fehlgeschlagen");

          function updateKaserne()
{
  // Anweisung als String speichern
  $update = "UPDATE Gebaeude set Kaserne = Kaserne + 1 where id = 1";
  // mysql-Fehler ausgeben
$eintragen = mysql_query($update) or die("Update: ". mysql_error());
}


if($Kaserne="yes")
         {
         updateKaserne();
         }

       $select = "select * from Gebaeude";
    $result = mysql_query($select,$db);

 while($row = mysql_fetch_array($result)){
 {


}
 echo "Die Kaserne ist auf Stufe ".$row['Kaserne']."";
  }

       ?>
      <p><a href="<?echo $PHP_SELF."?Kaserne=yes"; ?>">Kaserne ausbauen</a></p>
 
Du könntest bei deiner "mysql_query" Anweisung auch noch ein "or die("Fehler") " einfügen um zu schauen ob dort irgendein Fehler auftritt
 
Okay jetzt funktioniert es wieder...
ICh habe aber keine Ahnung warum....egal
Danke für eure Hilfe :-)
 
Zurück