Query returns only first row

i have six test entries in the db which satisfy the query’s condition, but i’m only able to return the first item in the db… any thoughts?

<?php

require_once('connVars.php');


$loc = $_POST['id'];

$data = mysql_query("SELECT * FROM pics WHERE picLocID='$loc' AND picFlag=0 ORDER BY picDate DESC") 
or die(mysql_error());



if(mysql_num_rows($data))
{
echo '<?xml version="1.0" encoding="UTF-8"?>'; 
echo '<datapacket>'; 


while($row = mysql_fetch_array( $data )) 
{ 
$line= "<pic><picURL>".$row[picURL]."</picURL><picCaption>".$row[picCaption]."</picCaption><picPhotog>".$row[picPhotog]."</picPhotog><picDate>".$row[picDate]."</picDate><picDeviceID>".$row[picDeviceID]."</picDeviceID></pic>";
echo $line;
} 

echo "</datapacket>";
}else{
echo "error - connection error";
}

?>