anpera.net https://anpera.dyndns.org/phpbb3/ |
|
Nochmal Probleme mit meinen Gilden =) https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=1326 |
Seite 1 von 1 |
Autor: | Eliwood [ Mi 27 Apr, 2005 18:43 ] |
Betreff des Beitrags: | Nochmal Probleme mit meinen Gilden =) |
Die Probleme häufen sich langsam... Keine Ahnung, warum diesmal was falsch läuft... $this->bbcode_second_pass_code('', '"spendgold": addnav("Zurück zur Gilde","gilden.php?op=drin&ID=".urlencode($row['gildenid'])."&name=".urlencode($row['gildenname']).""); if ($row['gildenschatzkammer']==1) $goldlager = 400000; if ($row['gildenschatzkammer']==2) $goldlager = 1000000; if ($row['gildenschatzkammer']==3) $goldlager = 2000000; $platzuebrig = $goldlager-$row['gildengold']; if ($_GET['act']=="") { output("In der Schatzkammer gibt es Platz für `^".$platzuebrig." Gold`&."); output("<form action='gilden.php?op=drin&gilde=spendgold&act=spend&ID=".urlencode($row['gildenid'])."' method='post'><input name='spend' lengt='10' maxlenght='10'><input type='submit' value='Spenden'></form>",true); addnav("","gilden.php?op=drin&gilde=spendgold&act=spend&ID=".urlencode($row['gildenid']).""); } if ($_GET['act']!="") { if ( ($row['gildengold'] + $_POST['spend']) > $platzuebrig ) output("`\$Fehler: Die Schatzkammer ist nicht gross genug für soviel Geld."); elseif ($_POST['spend']<0) output("`\$Fehler: Du kannst doch keine negativen Werte in den Schatz einzahlen."); elseif ($session['user']['gold'] < $_POST['spend']) output("`\$Fehler: DU hast nicht genügend Gold zur Verfügung."); else { $spendgold = $_POST['spend']; db_query ("UPDATE gilden SET gildengold=gildengold+'{$spendgold}' WHERE gildenid='".urldecode($_GET['ID'])."'"); $session['user']['gold'] -= $spendgold; output("Du hast `^".$_POST['spend']." Gold`& gespendet"); db_query ("INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'Gilden ".$_GET[ID]."',".$session['user']['acctid'].",'/me `\@wurde in die Gilde aufgenommen!')"); } } break;') Die Veriable Platzübrig wird richtig angezeigt. Aber sobald man bei eienr Grenze von 276943 Gold angelangt ist, kann nichts mehr eingezahlt werden.... Sieht jemand meinen Fehler? Danke schon im Vorraus |
Autor: | Kevz [ Mi 27 Apr, 2005 21:48 ] |
Betreff des Beitrags: | |
$this->bbcode_second_pass_code('', '$_POST['spend']) > $platzuebrig )') ersetz das mal durch: $this->bbcode_second_pass_code('', '$_POST['spend']) < $platzuebrig )') sry, wenns falsch ist, aber glaub es liegt mehr daran... Bin mir aber nicht sooo sicher, aber das wär jetzt die einzige stelle dir mir aufgefallen ist |
Autor: | Eliwood [ Do 28 Apr, 2005 05:44 ] |
Betreff des Beitrags: | |
Kevz hat geschrieben: $this->bbcode_second_pass_code('', '$_POST['spend']) > $platzuebrig )')
ersetz das mal durch: $this->bbcode_second_pass_code('', '$_POST['spend']) < $platzuebrig )') sry, wenns falsch ist, aber glaub es liegt mehr daran... Bin mir aber nicht sooo sicher, aber das wär jetzt die einzige stelle dir mir aufgefallen ist Wenn ich das so mach, dann bedeutet das, dass wenn der Goldi nhalt der Gilde PLUS das gespendete Gold KLEINER als der Übrige Platz sind, soll die Meldung kommen, das nicht genügend Platz is ![]() (Oder versteh ich wieder mal was nicht richtig ^^) |
Autor: | Kevz [ Do 28 Apr, 2005 08:22 ] |
Betreff des Beitrags: | |
Versuch es doch mal^^, solche probs hatte ich auch mal bringen einen leicht durcheinander ![]() |
Autor: | Chaosmaker [ Do 28 Apr, 2005 08:39 ] |
Betreff des Beitrags: | |
Mich würde das DB-Feld "gildengold" interessieren. Haste da mal nähere Infos zu? |
Autor: | Eliwood [ Do 28 Apr, 2005 11:45 ] |
Betreff des Beitrags: | |
Chaosmaker hat geschrieben: Mich würde das DB-Feld "gildengold" interessieren. Haste da mal nähere Infos zu?
Sollte int(11) unsigned Not null default '0' sein, wenn ich mich nicht irre... |
Autor: | Meteora [ Do 28 Apr, 2005 12:43 ] |
Betreff des Beitrags: | |
mach int(4) UNSIGNED NOT NULL default '0' draus |
Autor: | Chaosmaker [ Do 28 Apr, 2005 14:03 ] |
Betreff des Beitrags: | |
Mir ging es um die Länge, int(11) sollte reichen. Mit int(4) dagegen wird es noch früher Fehler geben. Einen Datenbankfehler an dieser Stelle würd ich dann mal ausschließen. Was genau heißt denn "kann man nichts mehr einzahlen"? Kommt eine von Deinen vorgegebenen Meldungen? Ist es exakt bei diesem Wert oder war das nur ein Beispiel? |
Autor: | Eliwood [ Do 28 Apr, 2005 15:48 ] |
Betreff des Beitrags: | |
Chaosmaker hat geschrieben: Mir ging es um die Länge, int(11) sollte reichen.
Mit int(4) dagegen wird es noch früher Fehler geben. Einen Datenbankfehler an dieser Stelle würd ich dann mal ausschließen. Was genau heißt denn "kann man nichts mehr einzahlen"? Kommt eine von Deinen vorgegebenen Meldungen? Ist es exakt bei diesem Wert oder war das nur ein Beispiel? Es kommt die Meldung, dass der Schatz voll sei, und bei exakt diesem Wert, nur 1 Gold mehr und der Schatz "sei voll" Der Wert, der angibt, wieviel Gold die Gilde noch Platz hat, stimmt, und bie der Überprügung ist es ja die gleiche Variable, also sollte es eigentlich nicht passieren... Aber es passiert ja ![]() |
Autor: | Chaosmaker [ Do 28 Apr, 2005 17:09 ] |
Betreff des Beitrags: | |
Laß an der Stelle, wo die Meldung erscheint, mal zusätzlich die 3 Variablen $row['gildengold'], $_POST['spend'] und $platzuebrig ausgeben. |
Autor: | Eliwood [ Fr 29 Apr, 2005 11:57 ] |
Betreff des Beitrags: | |
Chaosmaker hat geschrieben: Laß an der Stelle, wo die Meldung erscheint, mal zusätzlich die 3 Variablen $row['gildengold'], $_POST['spend'] und $platzuebrig ausgeben.
Ui, Danke ![]() Dank dem Output weiss ich nun, dass der Fehler nur bedingt im Code selbst lag.... Es war mein Fehler, das Gold, welches in der Gilde enthalten ist zum gespendeten Gold dazuzuzählen und prüfen, ob der Betrag grösser als die Variable $platzuebrig ist, denn $platzuebrig setzt sich aus der Grösse der Schatzkammer MINUS dem Gold in der Gilde zusammen. Der Summand $row['gildengolg'] war demnach 1mal zuviel enthalten ![]() |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |