[PHP] Why no update

Joined
Oct 6, 2008
Messages
1,394
Reaction score
198
I got this code

PHP:
if ($act == 'reborn')
		{
			$id = $_GET["charid"];
			$matchrows = mysql_query("SELECT * FROM characters AS c INNER JOIN accounts AS a ON a.username = c.accountname WHERE c.id = $id AND a.username = '$user'") or die(mysql_error());
			$checkrows = mysql_num_rows($matchrows);
			if ($checkrows != 0)
			{
				$id = $_GET["charid"];
				$query = mysql_query("SELECT * FROM characters WHERE id = $id") or die(mysql_error());
				$get = mysql_fetch_array($query);
				$class = $get['class'];
				$lvl = $get['level'];
				$rebirths = $get['rebirths'];
				$penya = $get['penya'];
				
				if (($lvl == 120) && ($class >= 24) && ($class <= 31) && ($rebirths < $maxrebirths) && ($penya >= $rebirthcost))
				{
					if ($class == 24) { 
					mysql_query("UPDATE characters SET skills = '308,307,306,************108,14,13,12,11,10,9,8,7,6,5,4,0,0,0,0,0,135,134,133,1***131,130,129,128,0,0,0,0,0,0,0,0,0,0,0,0,310,238' WHERE id = $id") or die(mysql_error());
					mysql_query("UPDATE characters SET skill_levels = '1,1,1,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0,0,0,0,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,5,5' WHERE id = $id") or die(mysql_error());
					mysql_query("UPDATE characters SET class = 16 WHERE id = $id") or die(mysql_error()); //This no update 
					}
					if ($class == 25) { 
					mysql_query("UPDATE characters SET skills = '308,307,306,************108,14,13,12,11,10,9,8,7,6,5,4,0,0,0,0,0,143,142,141,140,139,138,137,136,0,0,0,0,0,0,0,0,0,0,0,0,309,237' WHERE id = $id") or die(mysql_error());
					mysql_query("UPDATE characters SET skill_levels = '1,1,1,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0,0,0,0,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,5,5' WHERE id = $id") or die(mysql_error());
					mysql_query("UPDATE characters SET class = 17 WHERE id = $id") or die(mysql_error());  //This no update 
					}
					if ($class == 26) { 
					mysql_query("UPDATE characters SET skills = '308,307,306,206,205,204,203,202,201,200,1***198,1***1***195,194,193,192,191,0,0,0,0,214,213,212,211,210,209,208,207,0,0,0,0,0,0,0,0,0,0,0,0,311,239' WHERE id = $id") or die(mysql_error());
					mysql_query("UPDATE characters SET skill_levels = '1,1,1,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0,0,0,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,5,5' WHERE id = $id") or die(mysql_error());
					mysql_query("UPDATE characters SET class = 18 WHERE id = $id") or die(mysql_error()); //This no update
					}
					if ($class == 27) { 
					mysql_query("UPDATE characters SET skills = '308,307,306,206,205,204,203,202,201,200,1***198,1***1***195,194,193,192,191,0,0,0,0,222,221,220,219,218,217,216,215,0,0,0,0,0,0,0,0,0,0,0,0,312,240' WHERE id = $id") or die(mysql_error());
					mysql_query("UPDATE characters SET skill_levels = '1,1,1,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0,0,0,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,5,5' WHERE id = $id") or die(mysql_error());
					mysql_query("UPDATE characters SET class = 19 WHERE id = $id") or die(mysql_error()); //This no update
					}
					if ($class == 28) { 
					mysql_query("UPDATE characters SET skills = '308,307,306,117,116,********113,********53,52,51,51,50,49,48,46,45,44,20,0,0,230,151,150,149,148,147,146,145,144,0,0,0,0,0,0,0,0,0,0,0,316,244' WHERE id = $id") or die(mysql_error());
					mysql_query("UPDATE characters SET skill_levels = '1,1,1,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0,1,10,10,3,10,10,10,1,10,0,0,0,0,0,0,0,0,0,0,0,5,5' WHERE id = $id") or die(mysql_error());
					mysql_query("UPDATE characters SET class = 20 WHERE id = $id") or die(mysql_error()); //This no update
					}
					if ($class == 29) { 
					mysql_query("UPDATE characters SET skills = '308,307,306,117,116,********113,********53,52,51,51,50,49,48,46,45,44,20,0,0,159,158,157,156,155,154,153,152,0,0,0,0,0,0,0,0,0,0,0,0,315,243' WHERE id = $id") or die(mysql_error());
					mysql_query("UPDATE characters SET skill_levels = '1,1,1,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,5,5' WHERE id = $id") or die(mysql_error());
					mysql_query("UPDATE characters SET class = 21 WHERE id = $id") or die(mysql_error()); //This no update
					}
					if ($class == 30) { 
					mysql_query("UPDATE characters SET skills = '308,307,306,121,120,119,118,107,70,69,65,64,37,36,35,34,33,***31,30,0,0,0,167,166,165,164,163,162,161,160,0,0,0,0,0,0,0,0,0,0,0,0,314,242' WHERE id = $id") or die(mysql_error());
					mysql_query("UPDATE characters SET skill_levels = '1,1,1,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0,0,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,5,5' WHERE id = $id") or die(mysql_error());
					mysql_query("UPDATE characters SET class = 22 WHERE id = $id") or die(mysql_error()); //This no update
					}
					if ($class == 31) { 
					mysql_query("UPDATE characters SET skills = '308,307,306,121,120,119,118,107,70,69,65,64,37,36,35,34,33,***31,30,0,0,0,186,185,184,183,182,181,180,179,178,177,176,175,174,173,172,171,170,169,168,0,313,241' WHERE id = $id") or die(mysql_error());
					mysql_query("UPDATE characters SET skill_levels = '1,1,1,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,5,5' WHERE id = $id") or die(mysql_error());
					mysql_query("UPDATE characters SET class = 23 WHERE id = $id") or die(mysql_error());	//This no update			
					}
					mysql_query("UPDATE characters SET penya = penya - $rebirthcost WHERE id = $id") or die(mysql_error());
					mysql_query("UPDATE characters SET level = 60 WHERE id = $id") or die(mysql_error());
					mysql_query("UPDATE characters SET posWorldID = 1 WHERE id = $id") or die(mysql_error());
					mysql_query("UPDATE characters SET posX = 6958 WHERE id = $id") or die(mysql_error());
					mysql_query("UPDATE characters SET posY = 100 WHERE id = $id") or die(mysql_error());
					mysql_query("UPDATE characters SET posZ = 3215 WHERE id = $id") or die(mysql_error());
					mysql_query("UPDATE characters SET rebirths = rebirths + 1 WHERE id = $id") or die(mysql_error());
					mysql_query("UPDATE characters SET exp = 0 WHERE id = $id") or die(mysql_error());
					header("Location: index.php");
				}
				else
				{
					echo "<center><h3>You have to be level 120 Hero and $rebirthcost Penya to have Rebirth!</h3></center>";
				}
			}
		}

But this part in code no update (only this)
Code:
mysql_query("UPDATE characters SET class = xx WHERE id = $id") or die(mysql_error());

:S Anyone say me why no update?
 
PHP:
if ($act == 'reborn')
        {
            $id = $_GET["charid"];
            $matchrows = mysql_query("SELECT * FROM characters AS c INNER JOIN accounts AS a ON a.username = c.accountname WHERE c.id = $id AND a.username = '$user'") or die(mysql_error());
            $checkrows = mysql_num_rows($matchrows);
            if ($checkrows != 0)
            {
                $id = $_GET["charid"];
                $query = mysql_query("SELECT * FROM characters WHERE `id` = $id") or die(mysql_error());
                $get = mysql_fetch_array($query);
                $class = $get['class'];
                $lvl = $get['level'];
                $rebirths = $get['rebirths'];
                $penya = $get['penya'];
                
                if (($lvl == 120) && ($class >= 24) && ($class <= 31) && ($rebirths < $maxrebirths) && ($penya >= $rebirthcost))
                {
                    if ($class == 24) { 
                    mysql_query("UPDATE `characters` SET `skills` = '308,307,306,************108,14,13,12,11,10,9,8,7,6,5,4,0,0,0,0,0,135,134,133,1***131,130,129,128,0,0,0,0,0,0,0,0,0,0,0,0,310,238' WHERE `id` = $id") or die(mysql_error());
                    mysql_query("UPDATE `characters` SET `skill_levels` = '1,1,1,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0,0,0,0,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,5,5' WHERE `id` = $id") or die(mysql_error());
                    mysql_query("UPDATE `characters` SET `class` = '16' WHERE `id` = $id") or die(mysql_error()); //This no update 
                    }
                    if ($class == 25) { 
                    mysql_query("UPDATE `characters` SET `skills` = '308,307,306,************108,14,13,12,11,10,9,8,7,6,5,4,0,0,0,0,0,143,142,141,140,139,138,137,136,0,0,0,0,0,0,0,0,0,0,0,0,309,237' WHERE `id` = $id") or die(mysql_error());
                    mysql_query("UPDATE `characters` SET `skill_levels` = '1,1,1,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0,0,0,0,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,5,5' WHERE `id` = $id") or die(mysql_error());
                    mysql_query("UPDATE `characters` SET `class` = '17' WHERE `id` = $id") or die(mysql_error());  //This no update 
                    }
                    if ($class == 26) { 
                    mysql_query("UPDATE `characters` SET `skills` = '308,307,306,206,205,204,203,202,201,200,1***198,1***1***195,194,193,192,191,0,0,0,0,214,213,212,211,210,209,208,207,0,0,0,0,0,0,0,0,0,0,0,0,311,239' WHERE `id` = $id") or die(mysql_error());
                    mysql_query("UPDATE `characters` SET `skill_levels` = '1,1,1,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0,0,0,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,5,5' WHERE `id` = $id") or die(mysql_error());
                    mysql_query("UPDATE `characters` SET `class` = '18' WHERE `id` = $id") or die(mysql_error()); //This no update
                    }
                    if ($class == 27) { 
                    mysql_query("UPDATE `characters` SET `skills` = '308,307,306,206,205,204,203,202,201,200,1***198,1***1***195,194,193,192,191,0,0,0,0,222,221,220,219,218,217,216,215,0,0,0,0,0,0,0,0,0,0,0,0,312,240' WHERE `id` = $id") or die(mysql_error());
                    mysql_query("UPDATE `characters` SET `skill_levels` = '1,1,1,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0,0,0,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,5,5' WHERE `id` = $id") or die(mysql_error());
                    mysql_query("UPDATE `characters` SET `class` = '19' WHERE `id` = $id") or die(mysql_error()); //This no update
                    }
                    if ($class == 28) { 
                    mysql_query("UPDATE `characters` SET `skills` = '308,307,306,117,116,********113,********53,52,51,51,50,49,48,46,45,44,20,0,0,230,151,150,149,148,147,146,145,144,0,0,0,0,0,0,0,0,0,0,0,316,244' WHERE `id` = $id") or die(mysql_error());
                    mysql_query("UPDATE `characters` SET `skill_levels` = '1,1,1,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0,1,10,10,3,10,10,10,1,10,0,0,0,0,0,0,0,0,0,0,0,5,5' WHERE `id` = $id") or die(mysql_error());
                    mysql_query("UPDATE `characters` SET `class` = '20' WHERE `id` = $id") or die(mysql_error()); //This no update
                    }
                    if ($class == 29) { 
                    mysql_query("UPDATE `characters` SET `skills` = '308,307,306,117,116,********113,********53,52,51,51,50,49,48,46,45,44,20,0,0,159,158,157,156,155,154,153,152,0,0,0,0,0,0,0,0,0,0,0,0,315,243' WHERE `id` = $id") or die(mysql_error());
                    mysql_query("UPDATE `characters` SET `skill_levels` = '1,1,1,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,5,5' WHERE `id` = $id") or die(mysql_error());
                    mysql_query("UPDATE `characters` SET `class` = '21' WHERE `id` = $id") or die(mysql_error()); //This no update
                    }
                    if ($class == 30) { 
                    mysql_query("UPDATE `characters` SET `skills` = '308,307,306,121,120,119,118,107,70,69,65,64,37,36,35,34,33,***31,30,0,0,0,167,166,165,164,163,162,161,160,0,0,0,0,0,0,0,0,0,0,0,0,314,242' WHERE `id` = $id") or die(mysql_error());
                    mysql_query("UPDATE `characters` SET `skill_levels` = '1,1,1,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0,0,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,5,5' WHERE `id` = $id") or die(mysql_error());
                    mysql_query("UPDATE `characters` SET `class` = '22' WHERE `id` = $id") or die(mysql_error()); //This no update
                    }
                    if ($class == 31) { 
                    mysql_query("UPDATE `characters` SET `skills` = '308,307,306,121,120,119,118,107,70,69,65,64,37,36,35,34,33,***31,30,0,0,0,186,185,184,183,182,181,180,179,178,177,176,175,174,173,172,171,170,169,168,0,313,241' WHERE `id` = $id") or die(mysql_error());
                    mysql_query("UPDATE `characters` SET `skill_levels` = '1,1,1,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,5,5' WHERE `id` = $id") or die(mysql_error());
                    mysql_query("UPDATE `characters` SET `class` = '23' WHERE `id` = $id") or die(mysql_error());    //This no update            
                    }
                    mysql_query("UPDATE `characters` SET `penya` = 'penya - $rebirthcost' WHERE `id` = $id") or die(mysql_error());
                    mysql_query("UPDATE `characters` SET `level` = '60' WHERE `id` = $id") or die(mysql_error());
                    mysql_query("UPDATE `characters` SET `posWorldID` = '1' WHERE `id` = $id") or die(mysql_error());
                    mysql_query("UPDATE `characters` SET `posX` = '6958' WHERE `id` = $id") or die(mysql_error());
                    mysql_query("UPDATE `characters` SET `posY` = '100' WHERE `id` = $id") or die(mysql_error());
                    mysql_query("UPDATE `characters` SET `posZ` = '3215' WHERE `id` = $id") or die(mysql_error());
                    mysql_query("UPDATE `characters` SET `rebirths` = 'rebirths' + 1 WHERE `id` = $id") or die(mysql_error());
                    mysql_query("UPDATE `characters` SET `exp` = '0' WHERE `id` = $id") or die(mysql_error());
                    header("Location: index.php");
                }
                else
                {
                    echo "<center><h3>You have to be level 120 Hero and $rebirthcost Penya to have Rebirth!</h3></center>";
                }
            }
        }

I'm no expert, but yeah.
 
PHP:
WHERE `id` = $id
PHP:
WHERE `id` = '".$id."'

Doing that isnt needed

Instead of this
Code:
WHERE `id` = '".$id."'

This will do
Code:
WHERE `id` = '$id'

Because the string uses double quotation marks
and strings with double quotation marks can contain variables..

Strings with single quotation marks cant but they do decrease loading time..


and if id contains a number i dont think it needs single quotation marks in the
query
 
Maybe, caja, you just need to learn PHP in and out and then work on scripts like these...
 
what's the MySQL error that comes up? or is there one? If not, then the problem is in the variables you're updating with.

Also, I think it's unwise to be using a $_GET method for leveling people up in a game. Strictly because a laymen could look at the URL and realize that if they change ?level=25 to ?level=120 their level will go up.. They can also make someone else's level and things be affected by changing the ID. Also, consider using mysql_real_escape_string() on the incoming variables so you don't get injections.. That function is being talked about here like a broken record and still nobody uses it :/

And why so many queries? Why not just one or two good ones?

Are these the character settings to a flash or java game or something?
 
Oh caja, you still didnt get my advice of learning php :\
Anyways, why update skills? its not needed, why change skill level? You want when they reborn to have all skill maxed? nah, not a good feature.
I personally dont like it to update my position to flaris. Set exp to 0 wont work, you need to set it to the level 60 exp.
Like s-p-n said, use just one query, so if it fails, it fails all at once and wont mess the character.

@s-p-n
The level isnt being get by $_GET, he named the variable as get and if he did it right, change id wont work because it tests username/char id.(He used my base php to make this, if he copyied everything right, it wont work).
It is for a character control panel for flyff.
 
Ohh I see it says $get[] instead of $_get[] for the skill things.. Does that mean that every $get[] is undefined, or is there more code included above this that we can't see?

$user would also be undefined :/
Would that seize any update?

I quit I have my own problems atm

edit: Ah okay; I missed the $get defined at the start
 
Last edited:
@s-p-n
$get is defined here:
$get = mysql_fetch_array($query);
I have my doubts if get is a reserved word or anything but if it does the other updates should not be.
$user is definied around the begining of the whole script, it is a damn big page(you can get it at flyff release section here at ragezone if you want).

I still dont see the problem of the update, try making it all in one query to see if it works :P
 
Back