php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Script nimmt if nicht richtig


 
funnyzocker
24-01-2004, 21:33 
 
Hallo.
Was könnte an dem Code Falsch sein?
if($dbdata[richtige] == "1")
{
$klammid=$dbdata[klammid];
$g_haben=$dbdata[g_haben]+100;
$update = "UPDATE `konten` SET g_haben='$dbdata[g_haben]'+100 WHERE klammid='$dbdata[klammid]'";
$result = mysql_query($update) ;
}
if($dbdata[richtige] == "2")
{
$klammid=$dbdata[klammid];
$g_haben=$dbdata[g_haben]+200;
$update = "UPDATE `konten` SET g_haben='$dbdata[g_haben]'+200 WHERE klammid='$dbdata[klammid]'";
$result = mysql_query($update);
}
if($dbdata[richtige] == "3")
{
$klammid=$dbdata[klammid];
$g_haben=$dbdata[g_haben]+300;
$update = "UPDATE `konten` SET g_haben='$dbtata[g_haben]'+300 WHERE klammid='$dbdata[klammid]'";
$result = mysql_query($update);
}
if($dbdata[richtige] == "4")
{
$klammid=$dbdata[klammid];
$g_haben=$dbdata[g_haben]+400;
$update = "UPDATE `konten` SET g_haben='$dbtata[g_haben]'+400 WHERE klammid='$dbdata[klammid]'";
$result = mysql_query($update);
}
if($dbdata[richtige] == "5")
{
$klammid=$dbdata[klammid];
$g_haben=$dbdata[g_haben]+500;
$update = "UPDATE `konten` SET g_haben='$dbtata[g_haben]'+500 WHERE klammid='$dbdata[klammid]'";
$result = mysql_query($update);
}
if($dbdata[richtige] == "6")
{
$klammid=$dbdata[klammid];
$g_haben=$dbdata[g_haben]+600;
$update = "UPDATE `konten` SET g_haben='$dbtata[g_haben]'+600 WHERE klammid='$dbdata[klammid]'";
$result = mysql_query($update);
}
if($dbdata[richtige] == "7")
{
$klammid=$dbdata[klammid];
$g_haben=$dbdata[g_haben]+700;
$update = "UPDATE `konten` SET g_haben='$dbtata[g_haben]'+700 WHERE klammid='$dbdata[klammid]'";
$result = mysql_query($update);
}
Das Script erneuert den Wert zwar aber rechnet nicht den vorhandenen mit dem neuen zusammen

 
Tartax
24-01-2004, 21:44 
 
1: Könntest du vieleicht noch ein bißchen was darüber erzählen was dsa ganze machen soll:motz:

2: Obwohl ich nich weiß was das ganze beweirkt:
Das ganze sieht auch arg unsinnig aus, bist du sicher das man das so auschreiben muß? würde nicht

if ($dbdata[richtige] < 8 && $dbdata[richtige] >0)
{
$klammid=$dbdata[klammid];
$g_haben=$dbdata[g_haben]+$dbdata[richtige]*100;
$update = "UPDATE `konten` SET g_haben='$dbdata[g_haben]'+".($dbdata[richtige]*100)." WHERE klammid='$dbdata[klammid]'";
$result = mysql_query($update) ;
}

reichen???

 
funnyzocker
24-01-2004, 21:48 
 
Also ich bin dabei ein "Lotto" Script zu proggen.
Ich habe ein Script das 7 Zahlen zieht. Dieses Script speichert die Zahlen in einer DB.
Ein anderes Script vergleicht die Gezogenen Zahlen mit den Getippten Zahlen der User und speichert ebenfalls die ERgebnisse als 1 ,2, 3, 4, 5, 6, 7 in einer db.
Das Script was ich gepostet habe soll die Zahlen 1 bis sieben auslesen und dann die Spalte g_haben erneuern.
Wenn Guthaben 1000 und der User hat 7 Richtige sollen zu dem Guthaben eben 700 dazukommen.
Das macht er aber nicht

 
Tartax
24-01-2004, 22:21 
 
1: Mein script macht das selbe wie deins...
2: Ist das SQL.. schau dir mal deinen query genau an, da steht:

SET g_haben='$dbdata[g_haben]'+200
da $dbdata[g_haben] vermutlich eine ZAHL ist, nehme ich jetzt mal beispielshalber 23, dann steht da:
SET g_haben='23'+200

Da sieht man, die '' sind irgendwie doof, da ja 23 kein string sein soll...

 
Tartax
24-01-2004, 22:24 
 
Demzufolge sollte es funzen wenn du statt dem Ganzen Kram in deinem ersten Post einfach:

if ($dbdata[richtige] < 8 && $dbdata[richtige] >0 && isset($dbdata[klammid]))
{
$update = "UPDATE `konten` SET g_haben=".$dbdata[g_haben]+$dbdata[richtige]*100)." WHERE klammid=".$dbdata[klammid].";";
$result = mysql_query($update) ;
}


oder hab ich da jetzt was falsch verstanden?

 
funnyzocker
24-01-2004, 22:44 
 
Ist ja alles Schön und gut. Nur er erneuert immer nur den WErt in der Tabelle.
Er rechnet nicht den Alten Wert der in der DB ist mit dem neuen Zusammen und speichert den.

 
funnyzocker
24-01-2004, 22:58 
 
So kann geschlossen werden.
Habe Fehler irgendwie beseitigt
Neue Update Anweisung
$update = mysql_query("UPDATE `konten` SET `g_haben` = `g_haben` + '400' WHERE klammid='$dbdata[klammid]'");

Nun macht er das wass ich will.

Danke @ Tartax für die Versuche.
Ich habe deswegen die 7 ifs genommen weil die Summen die erhöht werden noch Variabel kommen. also dann nicht mehr +100 sondern +$klasse1 usw.
Und das kann ich mit deinem Codeteil leider nicht machen.

 
Tartax
25-01-2004, 00:20 
 
Ja, aber du hast einige sachen die in jedem Codeblock ausgeführt werden, die kannst du ja rausnehmen und einzeln ausführen.

 
wahsaga
25-01-2004, 13:04 
 
Original geschrieben von funnyzocker
Ich habe deswegen die 7 ifs genommen weil die Summen die erhöht werden noch Variabel kommen. also dann nicht mehr +100 sondern +$klasse1 usw.
Und das kann ich mit deinem Codeteil leider nicht machen.
trotzdem solltest du dir mal switch() ansehen, um solche if-konstrukte effektiver machen zu können.

ausserdem hat tartax recht, du hast jede menge redundanten code da drin, der nicht nötig ist.


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:39 Uhr.