CJ - Twitch Posted March 30, 2010 Share Posted March 30, 2010 <?php include "globals.php"; $_GET['to'] = abs((int) $_GET['to']); if(!$_GET['to']) { print "Welcome to the Monorail Station. Where would you like to travel today? "; $q=$db->query("SELECT * FROM cities WHERE cityid != {$ir['location']} AND cityminlevel <= {$ir['level']}"); print "<table width=75% cellspacing=1 class='table'><tr style='background:gray'><th>Name</th><th>Description</th><th>Min Level</th><th>Cost</th><th></th></tr>"; while($r=$db->fetch_row($q)) { print "<tr><td>{$r['cityname']}</td><td>{$r['citydesc']}</td><td>{$r['cityminlevel']}</td><td>\${$r['citycost']}</td><td><a href='monorail.php?to={$r ['cityid']}'>Go</a></td></tr>"; } print "</table>"; } else { if($ir['money'] < $r['citycost']) { print "You don't have enough money. You need {$r['citycost']} to travel to {$r['cityname']}"; } else if( ((int) $_GET['to']) != $_GET['to']) { print "Invalid city ID"; } else { $q=$db->query("SELECT * FROM cities WHERE cityid = {$_GET['to']} AND cityminlevel <= {$ir['level']}"); if(!$db->num_rows($q)) { print "Error, this city either does not exist or you cannot go there."; } else { $db->query("UPDATE users SET money=money-{$r['citycost']},location={$_GET['to']} WHERE userid=$userid"); $r=$db->fetch_row($q); print "Congratulations, you paid \${$r['citycost']} and travelled to {$r['cityname']} on the monorail!"; } } } $h->endpage(); ?> [mysql]ALTER TABLE `cities` ADD `citycost` INT( 11 ) NOT NULL AFTER `cityid` ;[/mysql] This is my script but I get this... QUERY ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'location=2 WHERE userid=1' at line 1 Query was UPDATE users SET money=money-,location=2 WHERE userid=1 Any ideas? Quote Link to comment Share on other sites More sharing options...
CJ - Twitch Posted March 30, 2010 Author Share Posted March 30, 2010 Still learning SQL. :P Quote Link to comment Share on other sites More sharing options...
corruptcity || skalman Posted March 30, 2010 Share Posted March 30, 2010 here you are it works on my game and ive made it a little more secure than what you posted up <?php include "globals.php"; $_GET['to'] = isset($_GET['to']) && is_numeric($_GET['to']) ? abs((int) $_GET['to']) : false; if(!$_GET['to']) { print "Welcome to the Monorail Station. Where would you like to travel today? "; $q=$db->query("SELECT * FROM `cities` WHERE `cityid` != {$ir['location']} AND `cityminlevel` <= {$ir['level']}"); print "<table width=75% cellspacing=1 class='table'><tr style='background:gray'><th>Name</th><th>Description</th><th>Min Level</th><th>Cost</th><th></th></tr>"; while($r=$db->fetch_row($q)) { print "<tr><td>{$r['cityname']}</td><td>{$r['citydesc']}</td><td>{$r['cityminlevel']}</td><td>\${$r['citycost']}</td><td><a href='monorail.php?to={$r ['cityid']}'>Go</a></td></tr>"; } print "</table>"; } else { if($ir['money'] < $r['citycost']) { print "You don't have enough money. You need {$r['citycost']} to travel to {$r['cityname']}"; } else if( ((int) $_GET['to']) != $_GET['to']) { print "Invalid city ID"; } else { $qq=$db->query("SELECT * FROM cities WHERE cityid = {$_GET['to']} AND cityminlevel <= {$ir['level']}"); if(!$db->num_rows($qq)) { print "Error, this city either does not exist or you cannot go there."; } else { $r=$db->fetch_row($qq); $db->query(sprintf("UPDATE users SET money = money - %d, location = %d WHERE (userid = %d)", $r['citycost'], $_GET['to'], $ir['userid'])); print "Congratulations, you paid \${$r['citycost']} and travelled to {$r['cityname']} on the monorail!"; } } } $h->endpage(); ?> Quote Link to comment Share on other sites More sharing options...
Zero-Affect Posted March 30, 2010 Share Posted March 30, 2010 I got a little bored hope you don't mind... <?php include_once (DIRNAME(__FILE__) . '/globals.php'); # $_GET['to'] = isset($_GET['to']) && is_numeric($_GET['to']) ? abs((int) $_GET['to']) : false; # Always wondered why people added abs((int) $var) ctype_digit will basically do a check on variables and won't output if it's actually numeric... $_GET['to'] = ( isset($_GET['to']) AND ctype_digit($_GET['to']) ) ? $_GET['to'] : 0 ; if ( empty($_GET['to']) ) { echo ' Welcome to the Monorail Station. Where would you like to travel today? '; $q = $db->query('SELECT `cityname`, `citydesc`, `cityminlevel`, `citycost`, `cityid` FROM `cities` WHERE `cityid` != '.$ir['location'].' AND `cityminlevel` <= '.$ir['level']); echo ' <table width="75%" cellspacing="1" class="table"> <tr style="background:gray"> <th>Name</th> <th>Description</th> <th>Min Level</th> <th>Cost</th> <th></th> </tr> '; while( $r = $db->fetch_row($q) ) { echo ' <tr> <td>'.$r['cityname'].'</td> <td>'.$r['citydesc'].'</td> <td>'.$r['cityminlevel'].'</td> <td>'.money_formatter($r['citycost']).'</td> <td>[url="monorail.php?to='.$r['cityid'].'"]Go[/url]</td> </tr> '; } echo '</table>'; } else { /* if ( $ir['money'] < $r['citycost'] ) { echo 'You don\'t have enough money. You need '.$r['citycost'].' to travel to '.$r['cityname']; } else # The above is pointless unless you have predefined $r if( ((int) $_GET['to']) != $_GET['to']) { // <= lmao echo 'Invalid city ID'; } else {*/ $qq = $db->query('SELECT `citycost`, `cityname` FROM `cities` WHERE `cityid` = '.$_GET['to'].' AND `cityminlevel` <= '.$ir['level']); if(!$db->num_rows($qq)) { print "Error, this city either does not exist or you cannot go there."; } else { $r = $db->fetch_row($qq); if ( $ir['money'] < $r['citycost'] ) { echo 'You don\'t have enough money. You need '.$r['citycost'].' to travel to '.$r['cityname']; } $db->query('UPDATE `users` SET `money` = `money` - '.$r['citycost'].', `location` = '.$_GET['to'].' WHERE `userid` = '.$ir['userid']); echo 'Congratulations, you paid '.money_formatter($r['citycost']).' and travelled to '.$r['cityname'].' on the monorail!'; } # } } $h->endpage(); ?> i added some notes but if that's generic MCC that not defined $r issue will be on all the generic monorail modifications, surprised no one noticed it... Quote Link to comment Share on other sites More sharing options...
CJ - Twitch Posted March 31, 2010 Author Share Posted March 31, 2010 echo 'You don\'t have enough money. You need '.$r['citycost'].' to travel to '.$r['cityname']; should be... echo 'You don\'t have enough money. You need '.money_formatter($r['citycost']).' to travel to '.$r['cityname']; Thank you CrimGame and skalman :thmbsup: Quote Link to comment Share on other sites More sharing options...
Zero-Affect Posted March 31, 2010 Share Posted March 31, 2010 ah good point don't know how i missed that. Quote Link to comment Share on other sites More sharing options...
CJ - Twitch Posted March 31, 2010 Author Share Posted March 31, 2010 One thing... You forgot a else statement... :P It use to say you don't have enough money and still took you there... for example.. You don't have enough money. You need $100,000 to travel to TEST1Congratulations, you paid $100,000 and travelled to TEST1 on the monorail! Fixed. <?php include_once (DIRNAME(__FILE__) . '/globals.php'); # $_GET['to'] = isset($_GET['to']) && is_numeric($_GET['to']) ? abs((int) $_GET['to']) : false; # Always wondered why people added abs((int) $var) ctype_digit will basically do a check on variables and won't output if it's actually numeric... $_GET['to'] = ( isset($_GET['to']) AND ctype_digit($_GET['to']) ) ? $_GET['to'] : 0 ; if ( empty($_GET['to']) ) { echo ' Welcome to the Monorail Station. Where would you like to travel today? '; $q = $db->query('SELECT `cityname`, `citydesc`, `cityminlevel`, `citycost`, `cityid` FROM `cities` WHERE `cityid` != '.$ir['location'].' AND `cityminlevel` <= '.$ir['level']); echo ' <table width="75%" cellspacing="1" class="table"> <tr style="background:gray"> <th>Name</th> <th>Description</th> <th>Min Level</th> <th>Cost</th> <th></th> </tr> '; while( $r = $db->fetch_row($q) ) { echo ' <tr> <td>'.$r['cityname'].'</td> <td>'.$r['citydesc'].'</td> <td>'.$r['cityminlevel'].'</td> <td>'.money_formatter($r['citycost']).'</td> <td>[url="monorail.php?to='.$r['cityid'].'"]Go[/url]</td> </tr> '; } echo '</table>'; } else { /* if ( $ir['money'] < $r['citycost'] ) { echo 'You don\'t have enough money. You need '.$r['citycost'].' to travel to '.$r['cityname']; } else # The above is pointless unless you have predefined $r if( ((int) $_GET['to']) != $_GET['to']) { // <= lmao echo 'Invalid city ID'; } else {*/ $qq = $db->query('SELECT `citycost`, `cityname` FROM `cities` WHERE `cityid` = '.$_GET['to'].' AND `cityminlevel` <= '.$ir['level']); if(!$db->num_rows($qq)) { print "Error, this city either does not exist or you cannot go there."; } else { $r = $db->fetch_row($qq); if ( $ir['money'] < $r['citycost'] ) { echo 'You don\'t have enough money. You need '.money_formatter($r['citycost']).' to travel to '.$r['cityname']; } else { $db->query('UPDATE `users` SET `money` = `money` - '.$r['citycost'].', `location` = '.$_GET['to'].' WHERE `userid` = '.$ir['userid']); echo 'Congratulations, you paid '.money_formatter($r['citycost']).' and travelled to '.$r['cityname'].' on the monorail!'; } } } $h->endpage(); ?> Thanks again. :) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.