getuserinc.php

<? include 'xmlheader.php'?>
<?
echo "<?xml version=\"1.0\" ?>";?>
<?php     
    
include 'include.php';

//Both getusers.php and respondinvitation.php need to return,
//in XML format, a list of users who are currently ready to play.
//This file contains all the functionality needed to do that.

//This (long) query says:
//"Select all users who aren't currently involved
//in a game, and who aren't us, and who were last active
//in the last minute."
//$sGetUsersQuery = "SELECT DISTINCT user.userid AS userid, user.name, gameusermap.invitationstatus AS theirstatus, gameusermap2.invitationstatus AS mystatus, user.contact FROM (user LEFT JOIN (gameusermap INNER JOIN gameusermap AS gameusermap2 ON gameusermap.gameid = gameusermap2.gameid AND gameusermap.userid <> gameusermap2.userid AND gameusermap2.userid = ".$_SESSION['userid'].") on gameusermap.userid = user.userid) INNER JOIN (user AS user2 LEFT JOIN (gameusermap AS gameusermap3 INNER JOIN gameusermap AS gameusermap4 ON gameusermap3.gameid = gameusermap4.gameid AND gameusermap3.userid <> gameusermap4.userid AND gameusermap3.invitationstatus = 'willing' AND gameusermap4.invitationstatus = 'willing') ON user2.userid = gameusermap3.userid) ON user.userid = user2.userid WHERE user.userid <> ".$_SESSION['userid']." AND (gameusermap3.userid IS NULL OR gameusermap2.userid = ".$_SESSION['userid'].") AND NOW() - user.timelastactive < 100";
$sGetUsersQuery "SELECT DISTINCT user.userid AS userid, user.name, gameusermap.invitationstatus AS theirstatus, gameusermap2.invitationstatus AS mystatus, user.contact FROM (user LEFT JOIN (gameusermap INNER JOIN gameusermap AS gameusermap2 ON gameusermap.gameid = gameusermap2.gameid AND gameusermap.userid <> gameusermap2.userid AND gameusermap2.userid = ".$_SESSION['userid']." AND gameusermap.invitationstatus <> 'finished' AND gameusermap2.invitationstatus <> 'finished') ON gameusermap.userid = user.userid) INNER JOIN (user AS user2 LEFT JOIN (gameusermap AS gameusermap3 INNER JOIN gameusermap AS gameusermap4 ON gameusermap3.gameid = gameusermap4.gameid AND gameusermap3.userid <> gameusermap4.userid AND gameusermap3.invitationstatus = 'willing' AND gameusermap4.invitationstatus = 'willing') ON user2.userid = gameusermap3.userid) ON user.userid = user2.userid WHERE user.userid <> ".$_SESSION['userid']." AND (gameusermap3.userid IS NULL OR gameusermap2.userid = ".$_SESSION['userid'].") AND NOW() - user.timelastactive < 100";
//This query says:
//"Update our user record so that our 'time
//last active' is marked as the current time."
$sUpdateQuery "UPDATE `user` SET `timelastactive` = NOW() WHERE userid = ".$_SESSION['userid'];

//This function is called by the queryDatabase function.
//It takes, as a parameter, an array of data fetched
//from the database. It converts that into XML and outputs it.
function outputRow($rowOutput)
    {
        echo 
"<user>";

        
outputRowAsXML($rowOutput);

        echo 
"</user>";
     }
?>