MYSQL Wert erhöhen

  • Themenstarter Themenstarter koronyl
  • Beginndatum Beginndatum
K

koronyl

Hallo Leute in meiner Datenbank möchte ich einen Wert erhöhen aber irgendwie geht das nicht er macht es einfacht nicht :(

Hier mal der 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()
      {

     $update = "UPDATE Kaserne from Gebaeude set Kaserne = Kaserne + 1 where id = 1";
     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>
 
PC ist von Natur aus faul und macht nur was man ihm explizit sagt. ;)
Sieh dir deine Funktion mal an und sag mir was fehlt:
PHP:
      function updateKaserne()
{
  // Anweisung als String speichern
  $update = "UPDATE Gebaeude set Kaserne = Kaserne + 1 where id = 1";
  // mysql-Fehler ausgeben
  echo mysql_error();
}

Kommentare helfen bei der Übersicht von Code für einen selbst und für fremde zur Widerverwendung.
 
Zuletzt bearbeitet:
Anweisung auszuführen....

Aber wie kann ich das was in
PHP:
$update
steht ausführen?
 
Super funktioniert alles!
Eine Frage noch:
Kann man in der Datenbank irgendetwas anlegen was diesen Prozess Stoppt wenn der Wert 20 ist?
 
Ich weiß zwar nicht, welchen Wert Du meinst, aber man legt nicht "irgendwas in der Datenbank an", man baut entsprechende Bedingungen in die Abfrage ein.

LG
 
Der Wert Kaserne
aber du hast recht mit if würd das gehen danke :)

Kann man einen Wert sich automatisch nach jeder MInute erhöhen lassen?
Und kann man Werte aus anderen Datenbanken zb. user id dort mit einbeziehen?
 
Ah, ich hoffe ich habe dein Problem verstanden, weil ein ähnliches hatte ich auch mal.
Dies lässt sich natürlich über sogennante CronJobs lösen, sofern dein Hoster das Unterstützt.
Allerdings habe ich es damals nur über das Script gelöst, dass wenn man sich wieder einloggt die Rohstoffe, Gebäude und alles aktualisiert werden.
Und zwar erst mal eine SQL-Tabelle hier für die Produktion von Einheiten:
BenutzerID, Ereigniszeit, EinheitID, Anzahl (Unterstrichene sind Primärschlüssel - sollte der schon vorhanden sein einfach eine Sekunde zur Zeit hinzufügen).

Und jedesmal wenn der Benutzer sich einloggte, angegriffen wurde oder man einfach aktuelle Werte brauchte, hat ein Script alle Ereignisse abgearbeitet:
PHP:
$result = mysql_query("SELECT * FROM `ereignis_einheiten` WHERE `BenutzerID` = " . $besnutzerID . " && `ereigniszeit` <= " . time());

while ($row = mysql_fetch_row($result))
{
  // Ereignisse auffangen, abarbeiten
}

// Bedingung der Anweisung von oben nochmal mit DELETE-Anweisung
// damit die Ereignisse gelöscht werden, weil: soeben abgearbeitet
 
Zuletzt bearbeitet:
Wenn der User bereits auf der Seite ist, kann ich doch mittels JavaScript sagen, lade die Seite alle 60 Sekunden neu, beim neuladen der Seite wird dann doch auch wieder der PHP Code abgearbeitet.
Cronjobs laufen auf Linux ohne Probleme, für Windows gibt es aber auch genug Programme. Jedoch, denke ich nicht das es in dieses Fall notwendig ist, oder irre ich mich?
 
Zurück