seany123 Posted September 15, 2008 Share Posted September 15, 2008 i want this value to go up by +5 the table is 'players' and the value is 'awake' this was my best try $awakeupdate = $player->awake + 5; $query = $db->execute("update `players` set awake = IF((awake + 5)>maxawake"); it doesnt work so any help would be great. Quote Link to comment Share on other sites More sharing options...
seany123 Posted September 15, 2008 Author Share Posted September 15, 2008 Anyone able to give me a hand doing this? Quote Link to comment Share on other sites More sharing options...
seany123 Posted September 15, 2008 Author Share Posted September 15, 2008 would this work? $query = "SELECT * FROM players"; $result = mysql_query($query) OR die(mysql_error()); while ($row = mysql_fetch_assoc($result)) { $awake = $row['awake'] + 5); $awake = ($awake > $row['maxawake']) ? $row['maxawake'] : $awake; $query = sprintf('UPDATE players SET awake = %d WHERE id = %d', $awake, $row['id']); mysql_query($query) or die(mysql_error()); } Quote Link to comment Share on other sites More sharing options...
waynewex Posted September 15, 2008 Share Posted September 15, 2008 mysql_query("UPDATE TABLE players SET awake = (awake+5) WHERE example_column = example_condition") or die(mysql_error()); Quote Link to comment Share on other sites More sharing options...
seany123 Posted September 15, 2008 Author Share Posted September 15, 2008 but with that awake will be able to go above the 'maxawake' value. Quote Link to comment Share on other sites More sharing options...
waynewex Posted September 15, 2008 Share Posted September 15, 2008 Only allow that query if awake is below maxawake. Otherwise take awake away from maxawake and update the row with the answer. Quote Link to comment Share on other sites More sharing options...
seany123 Posted September 15, 2008 Author Share Posted September 15, 2008 no that wont work... even though it is a kind of cron job, im not using a Cron from my host, im just executing a file every 5 minutes which updates the database, so the script you gave me wont work. Quote Link to comment Share on other sites More sharing options...
seany123 Posted September 16, 2008 Author Share Posted September 16, 2008 im looking for something like this: $query = "SELECT * FROM players"; $result = mysql_query($query) OR die(mysql_error()); while ($row = mysql_fetch_assoc($result)) { $energy = $row['energy'] + ($row['maxenergy'] * .25); $energy = ($energy > $row['maxenergy']) ? $row['maxenergy'] : $energy; $query = sprintf('UPDATE players SET energy = %d WHERE id = %d', $energy, $row['id']); mysql_query($query) or die(mysql_error()); } i want it to add +5 instead of 25% of maxenergy... it still cant gover over maxenergy though. Quote Link to comment Share on other sites More sharing options...
seany123 Posted September 16, 2008 Author Share Posted September 16, 2008 Can someone please help me with this? Quote Link to comment Share on other sites More sharing options...
kodosai Posted September 16, 2008 Share Posted September 16, 2008 im looking for something like this: $query = "SELECT * FROM players"; $result = mysql_query($query) OR die(mysql_error()); while ($row = mysql_fetch_assoc($result)) { $energy = $row['energy'] + ($row['maxenergy'] * .25); $energy = ($energy > $row['maxenergy']) ? $row['maxenergy'] : $energy; $query = sprintf('UPDATE players SET energy = %d WHERE id = %d', $energy, $row['id']); mysql_query($query) or die(mysql_error()); } i want it to add +5 instead of 25% of maxenergy... it still cant gover over maxenergy though. Not too familiar with mysql..so bear with... while ($row = mysql_fetch_assoc($result)) { if ($row['energy'] < $row['maxenergy']){ // Check to see if energy is less than max $new_energy = $row['energy'] + 5; // add 5 to energy if($new_energy > $row['maxenergy']){ // check to make sure energy is not more than max $new_energy = $row['maxenergy']; // set energy to max energy if it was previous greater than. } $query = sprintf('UPDATE players set energy = $new_energy where id = $row['id']); myqsql_query($query) or die(mysql_error()); } } 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.