PHP - Zahl automatisch erhöhen

01/11/2013 19:28 Huperis#1
Hallo,
ich schreibe im Moment an einer Funktion für ne Community von einem Kollegen.
Jede Woche wird ein neuer Durchgang gestartet & dieser Durchgang soll dann mit in die Datenbank geschrieben werden:
PHP Code:
$sql "INSERT INTO sotw_images (username, imagesrc, durchgang) VALUES ('$username', '$imagesrc', '$durchgang')"
Den Durchgang hab ich momentan in meinem Formular so geregelt:
Code:
<p>Durchgang: <input name="durchgang" size="20" value="1" readonly="readonly"></p>
Soll auch weiterhin sichtbar für das Teammitglied bleiben, das die Bilder hinzufügt.
Nur müsste ich so immer den Durchgang manuell ändern.
Gibt es eine Möglichkeit, das Ganze automatisch laufen zu lassen, das sich das dann alle 14 Tage um +1 verändert?

Ich hoffe, ihr versteht, was ich mein.
Danke schon mal :)
01/11/2013 19:32 PseudoPsycho#2
Hol' dir die $durchgang-Variable aus 'ner MySQL-Tabelle...
Dann kannst du die in einer PHP-Datei erhöhen.
Die entsprechende Datei dann einfach per Cronjob ausführen (oder falls du WebSpace nutzt und das nicht auf die Art geht, dann halt per cron-job.org o.Ä.).
Solltest die Datei nur vor fremden Blicken schützen (z.B. indem du 'ne GET-Variable übergibst, die du vorher definiert hast)...
01/12/2013 11:09 Huperis#3
Und wie kann ich das in einer PHP-Datei dann erhöhen? So?:
PHP Code:
UPDATE sotw_durchgang SET durchgang '..'
Nur muss ich ja immer +1 rechnen. Kann ich dann einfach wie beim Quest-schreiben bei Metin2 (:x):
PHP Code:
$durchgang 
oder so?

Also das es dann so aussieht:
PHP Code:
UPDATE sotw_durchgang SET durchgang $durchgang+1
Ich weiß nicht, ob das überhaupt so in der Art geht, geschweige denn, wie man es bei PHP bzw SQL schreibt.
Bei den Quests geht es so:
PHP Code:
pc.setqf("chat"pc.getqf("chat")+1
hmm.. :x
01/12/2013 11:29 .StarSplash#4
Ich nehme mal an es wird in der Tabelle nur hinzugefügt, nicht überschrieben oder ?

Dann kannst du einfach ein Auto Increment Feld nehmen, das zählt nämlich durch ;)
01/12/2013 11:34 Huperis#5
Das Problem ist nur, dass das Script ja nur eine Zahl und zwar die höchste Zahl nehmen soll. Wie soll ich das denn machen?
Weil mit UPDATE kann ich ja einfach "SELECT * from sotw_durchgang" machen, wenn ich mich nicht täusche.
01/12/2013 12:10 NotEnoughForYou#6
wenn du immer eine neue Spalte hinzufügst (damit ai die zahl automatisch erhöht) müsstest du eben mit einem Order abfragen.

-->
Code:
SELECT id FROM db.table ORDER BY id DESC LIMIT 1
Ansonsten mit dem update einfach
Code:
UPDATE db.table SET durchgang= durchgang + 1 LIMIT 1
und auslesen hast du ja schon. Dann einfach nur noch mit php auslesen -->
PHP Code:
$con mysql_connect("localhost""user""pw");

$data mysql_fetch_assoc(mysql_query("SELECT durchgang FROM db.table LIMIT 1"$con));

echo 
$data['durchgang']; 
Wobei du dir am besten gleich Mysqli oder PDO anschauen solltest.