// * // *********************************** // debug the death $debug = false; // assume yes for now $container["continue"] = "Yes"; // new db object to avoid interfearance with other db-objects $dead_ppl = new SmrMySqlDatabase(); // we need to enter the loop at least once $result = true; // with a while loop we have to pick up only one result row from the db query // do all our work (so over threads have the ability to pick up other rows) // then lock table again to pic up another row while ($result) { // lock kills table for the whole process $dead_ppl->lock("kills"); // pick one random row we are going to process $dead_ppl->query("SELECT *\n\t\t\t\t\t FROM kills\n\t\t\t\t\t WHERE game_id = {$player->game_id} AND\n\t\t\t\t\t processed = 'FALSE'\n\t\t\t\t\t ORDER BY rand()\n\t\t\t\t\t LIMIT 1\n\t\t\t\t\t "); // did we get one result? if ($dead_ppl->next_record()) { // get their id's $killed_id = $dead_ppl->f("dead_id"); $killer_id = $dead_ppl->f("killer_id"); $curr_sector = $dead_ppl->f("sector_id"); $dead_exp = $dead_ppl->f("dead_exp"); $kill_exp = $dead_ppl->f("kill_exp"); // we have to set the 'process' column to true here // BEFORE we give access free to that table. // otherwise another thread could pick this row up // but we cannot delte the entry before we sent that poor guy back to his hq $db->query("UPDATE kills SET processed = 'TRUE' WHERE game_id = {$player->game_id} AND dead_id = {$killed_id} AND killer_id = {$killer_id}");