变量作为SELECT约束

I am setting a variable that contains an array as a constraint to a SELECT sql statement. However the constraint seems only to apply to one piece of data in the array. Why is this?

Code below:

<?php
include 'connection.php';

$Date = $_POST['date'];
$Unavail = 0;
$Avail = 0;
$Availid = 0;
$low = 99999;


$query = "SELECT username FROM daysoff WHERE date = '$Date'";               
$dayresult = mysql_query($query);                                                         
while($request = mysql_fetch_array($dayresult)) {                           
    $Unavail = $request;
    echo "<span>" . $Unavail['username'] . " is unavailable.</br>";
}   

$query1 = "SELECT Username, name, work_stats FROM freelance WHERE Username != '$Unavail[username]'";
$dayresult1 = mysql_query($query1);                                                      
while($request1 = mysql_fetch_array($dayresult1))   {
        echo "<span>" . $request1['name'] . " is available.</br>";

if ($request1['work_stats']<=$low) {                                
    $low = $request1['work_stats'];                             
    $Availid = $request1['name'];
    }}
    echo "<span>" . $Availid . " is available on " . $_POST['date'] . " and is on workstat level " . $low . ".</span></br>";
?>  

The output shows two names in the first echo but then shows one of those names as available in the second echo (these echos are only in place as part of my testing), Many Thanks

The first query can have multiple results.

SELECT username FROM daysoff WHERE date = '$Date'

Let's say if gives two rows: Dave and John.

You're only keeping the last record so it will seem like Dave is available.

You should probably do something like:

$query = "SELECT username FROM daysoff WHERE date = '$Date'";               
$dayresult = mysql_query($query);       
$unavailable_users = array();                                                  
while($request = mysql_fetch_array($dayresult)) {                           
    $unavailable_users[] = $request["username"];
    echo "<span>" . $Unavail['username'] . " is unavailable.</br>";
}   

$query1 = "SELECT Username, name, work_stats FROM freelance
    WHERE NOT Username IN ('" . implode("','", $unavailable_users) . "')";
// etc  

Or in one go with a LEFT JOIN:

SELECT `Username`, `name`, `work_stats`
FROM `freelance`
    LEFT JOIN `daysoff` ON `freelance`.`Username` = `daysoff`.`username`
        AND `daysoff`.`date` = '$Date'
WHERE
    `daysoff`.`username` IS NULL