• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Punkte werden nicht richtig eingetragen

Status
Für weitere Antworten geschlossen.

Fury of Gods

Neues Mitglied
ich habe folgendes problem: ich möchte dass in die Datenbank die Anzahl der erhaltenen Punkte eingetragen wird... nur leider wird machnchmal zu wenig und manchmal garnichts eingetragen... Also ich möchte das entwerder 0, 100, 200,...1000 Punkte eingetragen werden das macht der aber nicht... warum?!

PHP:
<?php
srand(microtime()*10000000);
$rand = rand(-11, 11);

$abfrage=mysql_query("select * from dieb_user_".$digit." WHERE `id` = '".$_GET['id']."'");
while ($row2 = mysql_fetch_array($abfrage))
{
$names = htmlspecialchars($row2["user"]);
$bekid = $row2["bekid"];
$punkte = $row2["geld"];
}
$text1 = '<B>'.$names.'</b> hat dir nichts geklaut, da hast du nochmal Gl&uuml;ck gehabt.';
$text2 = '<B>'.$names.'</b> hat dir <B>100</b> '.$waehrung.' geklaut, nat&uuml;rlich nur virtuell.';
$text3 = '<B>'.$names.'</b> hat dir <B>200</b> '.$waehrung.' geklaut, nat&uuml;rlich nur virtuell.';
$text4 = '<B>'.$names.'</b> hat dir <B>300</b> '.$waehrung.' geklaut, nat&uuml;rlich nur virtuell.';
$text5 = '<B>'.$names.'</b> hat dir <B>400<b> '.$waehrung.' geklaut, nat&uuml;rlich nur virtuell.';
$text6 = '<B>'.$names.'</b> hat dir <B>500</b> '.$waehrung.' geklaut, nat&uuml;rlich nur virtuell.';
$text7 = '<B>'.$names.'</b> hat dir <B>600</b> '.$waehrung.' geklaut, nat&uuml;rlich nur virtuell.';
$text8 = '<B>'.$names.'</b> hat dir <B>700</b> '.$waehrung.' geklaut, nat&uuml;rlich nur virtuell.';
$text9 = '<B>'.$names.'</b> hat dir <B>800</b> '.$waehrung.' geklaut, nat&uuml;rlich nur virtuell.';
$text10 = '<B>'.$names.'</b> hat dir <B>900</b> '.$waehrung.' geklaut, nat&uuml;rlich nur virtuell.';
$text11 = '<B>'.$names.'</b> hat dir <B>1000</b> '.$waehrung.' geklaut, nat&uuml;rlich nur virtuell.';
$texte = array( 1=>"$text1",
              2=>"$text2",
              3=>"$text3",
              4=>"$text4",
              5=>"$text5",
              6=>"$text6",
              7=>"$text7",
              8=>"$text8",
              9=>"$text9",
              10=>"$text10",
              11=>"$text11"); 
$geld1 = '0';
$geld2 = '100';
$geld3 = '200';
$geld4 = '300';
$geld5 = '400';
$geld6 = '500';
$geld7 = '600';
$geld8 = '700';
$geld9 = '800';
$geld10 = '900';
$geld11 = '1000';
$anzahl = array( 1=>"$geld1",
              2=>"$geld2",
              3=>"$geld3",
              4=>"$geld4",
              5=>"$geld5",
              6=>"$geld6",
              7=>"$geld7",
              8=>"$geld8",
              9=>"$geld9",
              10=>"$geld10",
              11=>"$geld11");
              

$time_to_del = 30*60;

$diff = time()-$time_to_del;
$ip = $_SERVER['REMOTE_ADDR'];

mysql_query("DELETE FROM `dieb_ips_".$digit."` WHERE `time` < ".$diff."");

$qdrin = "SELECT COUNT(*) FROM `dieb_ips_".$digit."`";
$qdrin .= " WHERE `ip`='".$ip."'";
list($drin) = mysql_fetch_row(mysql_query($qdrin));

$spamip = '1';
if($drin > 0) {
  // IP steht bereits in DB
  $query = "UPDATE `dieb_ips_".$digit."` SET `time`='".time()."'";
  $query .= " WHERE `ip`='".$ip."'";
  mysql_query($query);
  $spamip = '1';
} else {
  // IP steht noch nicht in DB
  $query = "INSERT INTO `dieb_ips_".$digit."` SET";
  $query .= " `time`='".time()."',`ip`='".$ip."'";
  mysql_query($query);
 $spamip = '0';
}

if ($spamip == '0') { 
$inhalt .= $texte[$rand];
$neuepunkte = $punkte+$anzahl[$rand];
$neubekid = $bekid+1;
mysql_query("update dieb_user_".$digit." Set geld = '".$neuepunkte."', bekid = '".$neubekid."' WHERE id = '".$_GET['id']."'");
$inhalt .= '<BR><BR>Der User "'.$names.'" hat jetzt '.$neuepunkte.' '.$waehrung.'!';
}
else
{
$inhalt .= 'Du wurdest schon beklaut!';
$inhalt .= '<BR><BR>Der User "'.$names.'" hat '.$punkte.' '.$waehrung.'!';
}
$inhalt .= '<BR><BR>Werde auch zum Dieb, melde dich jetzt an.<BR><a href="registrieren.php">Weiter zur Anmeldung!</a>';

$template = implode("",file("template/style.html"));
$template = str_replace("<?inhalt?>", $inhalt, $template);
echo ($template);

if($copyless != 'TRUE') {
$file = "";
$data = @array();
$data = @file($file) or die('<center>Script &copy; by <a href="" target="_blank"></a></center>');
$copyright = $data[0];
echo '<!--  //-->'.$copyright;
}
?>
 
Zuletzt bearbeitet von einem Moderator:
Anstatt direkt den QRY auszuführen, solltest du mal schauen, wie dieser aussieht, und ob du diesen gegebenfalls über phpMyAdmin ausführen kannst.

PHP:
$neuepunkte = $punkte+$anzahl[$rand];
$neubekid = $bekid+1;
mysql_query("update dieb_user_".$digit." Set geld = '".$neuepunkte."', bekid = '".$neubekid."' WHERE id = '".$_GET['id']."'");
wird zu
PHP:
$neuepunkte = $punkte+$anzahl[$rand];
$neubekid = $bekid+1;
$sql = "update dieb_user_".$digit." Set geld = '".$neuepunkte."', bekid = '".$neubekid."' WHERE id = '".$_GET['id']."'";
die($sql);
Wenn du das mit allen SQL Befehlen machst, wirst du einen finden, wo du eben deine Werte nicht richtig übergibst.
 
Vielen Dank für die Hilfe mit den Codes!!
Außerdem Danke für den Hinweis, dass ich an einer Stelle die Werte falsch angegeben habe... Das habe ich jetzt korrigiert! Allerdings habe ich das Problem das jetzt einfach nichtsmehr da steht also wenn ich auf den Ref-Link gehen steht da nurnoch " "User" hat jetzt "geld" €uro" ... ich verstehe nicht warum und wenn ich nochmal da drauf gehen steht da:
Sie wurden bereits beklaut...
nochmal den
PHP:
<?php
srand(microtime()*10000000);
$rand = rand(-11, 11);

$abfrage=mysql_query("select * from dieb_user_".$digit." WHERE `id` = '".$_GET['id']."'");
while ($row2 = mysql_fetch_array($abfrage))
{
$names = htmlspecialchars($row2["user"]);
$bekid = $row2["bekid"];
$punkte = $row2["geld"];
}
$text1 = '<B>'.$names.'</b> hat dir nichts geklaut, da hast du nochmal Gl&uuml;ck gehabt.';
$text2 = '<B>'.$names.'</b> hat dir <B>100</b> '.$waehrung.' geklaut, nat&uuml;rlich nur virtuell.';
$text3 = '<B>'.$names.'</b> hat dir <B>200</b> '.$waehrung.' geklaut, nat&uuml;rlich nur virtuell.';
$text4 = '<B>'.$names.'</b> hat dir <B>300</b> '.$waehrung.' geklaut, nat&uuml;rlich nur virtuell.';
$text5 = '<B>'.$names.'</b> hat dir <B>400<b> '.$waehrung.' geklaut, nat&uuml;rlich nur virtuell.';
$text6 = '<B>'.$names.'</b> hat dir <B>500</b> '.$waehrung.' geklaut, nat&uuml;rlich nur virtuell.';
$text7 = '<B>'.$names.'</b> hat dir <B>600</b> '.$waehrung.' geklaut, nat&uuml;rlich nur virtuell.';
$text8 = '<B>'.$names.'</b> hat dir <B>700</b> '.$waehrung.' geklaut, nat&uuml;rlich nur virtuell.';
$text9 = '<B>'.$names.'</b> hat dir <B>800</b> '.$waehrung.' geklaut, nat&uuml;rlich nur virtuell.';
$text10 = '<B>'.$names.'</b> hat dir <B>900</b> '.$waehrung.' geklaut, nat&uuml;rlich nur virtuell.';
$text11 = '<B>'.$names.'</b> hat dir <B>1000</b> '.$waehrung.' geklaut, nat&uuml;rlich nur virtuell.';
$texte = array( 0=>"$text1",
              100=>"$text2",
              200=>"$text3",
              300=>"$text4",
              400=>"$text5",
              500=>"$text6",
              600=>"$text7",
              700=>"$text8",
              800=>"$text9",
              900=>"$text10",
              1000=>"$text11"); 
$geld1 = '0';
$geld2 = '100';
$geld3 = '200';
$geld4 = '300';
$geld5 = '400';
$geld6 = '500';
$geld7 = '600';
$geld8 = '700';
$geld9 = '800';
$geld10 = '900';
$geld11 = '1000';
$anzahl = array( 100=>"$geld1",
              200=>"$geld2",
              300=>"$geld3",
              400=>"$geld4",
              500=>"$geld5",
              600=>"$geld6",
              700=>"$geld7",
              800=>"$geld8",
              900=>"$geld9",
              1000=>"$geld10",
              1100=>"$geld11");
              

$time_to_del = 30*60;

$diff = time()-$time_to_del;
$ip = $_SERVER['REMOTE_ADDR'];

mysql_query("DELETE FROM `dieb_ips_".$digit."` WHERE `time` < ".$diff."");

$qdrin = "SELECT COUNT(*) FROM `dieb_ips_".$digit."`";
$qdrin .= " WHERE `ip`='".$ip."'";
list($drin) = mysql_fetch_row(mysql_query($qdrin));

$spamip = '1';
if($drin > 0) {
  // IP steht bereits in DB
  $query = "UPDATE `dieb_ips_".$digit."` SET `time`='".time()."'";
  $query .= " WHERE `ip`='".$ip."'";
  mysql_query($query);
  $spamip = '1';
} else {
  // IP steht noch nicht in DB
  $query = "INSERT INTO `dieb_ips_".$digit."` SET";
  $query .= " `time`='".time()."',`ip`='".$ip."'";
  mysql_query($query);
 $spamip = '0';
}

if ($spamip == '0') { 
$inhalt .= $texte[$rand];
$neuepunkte = $punkte+$anzahl[$rand];
$neubekid = $bekid+1;
$sql = "update dieb_user_".$digit." Set geld = '".$neuepunkte."', bekid = '".$neubekid."' WHERE id = '".$_GET['id']."'";
die($sql);
$inhalt .= '<BR><BR>Der User "'.$names.'" hat jetzt '.$neuepunkte.' '.$waehrung.'!';
}
else
{
$inhalt .= 'Du wurdest schon beklaut!';
$inhalt .= '<BR><BR>Der User "'.$names.'" hat '.$punkte.' '.$waehrung.'!';
}
$inhalt .= '<BR><BR>Werde auch zum Dieb, melde dich jetzt an.<BR><a href="registrieren.php">Weiter zur Anmeldung!</a>';

$template = implode("",file("template/style.html"));
$template = str_replace("<?inhalt?>", $inhalt, $template);
echo ($template);
?>
 
[phpnet]die[/phpnet]

Ich beende die komplette Bearbeitung des Scriptes.
Die Ausgabe sollte dann dein MySQL-Query sein.
Code:
UPDATE tabelle SET geld='300' WHERE ID='3'
 
Vielen Dank für die schnelle Hilfe es läuft nun alles so, wie ich es haben möchte!!
Ich habe allerdings noch eine Frage... Wie kann ich den User der Platz 1 in der Topliste belegt mit roter schrift ausgeben lassen?

Zur Zeit sieht meine Topliste so aus:
PHP:
<?php
$inhalt .= '<center><table width="100%" border="0" cellspacing="0" cellpadding="3"><tr><td colspan="3"><center><B>Top '.$topnumber.'</B></center></td></tr><tr><td><B>Platznr.</B></td><td><B>Name</B></td><td><B>Punkte</B></td></tr>';
while ($row =  mysql_fetch_array($abfrage))
{
$name = htmlspecialchars($row["user"]);
$punkte = $row["geld"];
$inhalt .= "<tr><td>$nummer</td><td>$name</td><td>$punkte</td></tr>";
$nummer++;
}
$inhalt .= "</table></center>";
?>
 
PHP:
<?php
$inhalt .= '<center><table width="100%" border="0" cellspacing="0" cellpadding="3"><tr><td colspan="3"><center><B>Top '.$topnumber.'</B></center></td></tr><tr><td><B>Platznr.</B></td><td><B>Name</B></td><td><B>Punkte</B></td></tr>';
while ($row =  mysql_fetch_array($abfrage))
{
$name = htmlspecialchars($row["user"]);
$punkte = $row["geld"];
if($nummer == 0) {
  $inhalt = "<tr style='background-color: red;'><td>$nummer</td><td>$name</td><td>$punkte</td></tr>";
} else {
  $inhalt .= "<tr><td>$nummer</td><td>$name</td><td>$punkte</td></tr>";
}
$nummer++;
}
$inhalt .= "</table></center>";
?>
 
Mhh klappt wenns
PHP:
if($nummer == 1) {
ist... allerdings ist das jetzt unter dem Menü und nicht daneben was kann ich dagegen machen?

PS: schuldigung das ich so viel Frage aber ich komm nicht zurecht
 
PHP:
$inhalt .= "<tr style='background-color: red;'><td>$nummer</td><td>$name</td><td>$punkte</td></tr>";

Hatte einen . beim .= vergessen :(
 
Tausend mal Danke!! Jetzt stimmt alles und optisch sieht es gut aus!!

PS: Wenn jemand interesse hat sich das Game mal anzuschauen:

dieb-spiel-online

EDIT:
Ist es auch möglich, dass immer nach wenn da 4 Zahlen stehen nach der 3. (von rechts aus gezählt) ein punkt ist?? und wenn da 80 zahlen stehen sollen da eben nach jeder 3. Zahl ein Punkt sein...
ist das möglich und wenn ja wie??

Mod-Edit: Beiträge zusammengeführt, es gibt einen Edit-Button! (Alti)
 
Zuletzt bearbeitet von einem Moderator:
Status
Für weitere Antworten geschlossen.
Zurück
Oben