Llamando a mysql_fetch_assoc() recupera la siguiente fila (es decir, la siguiente que aún no ha recuperado). Una vez que haya recuperado todas las filas, devuelve false . Entonces, una vez que haya superado ese primer bucle, tiene recuperó todas las filas, y todo lo que obtendrá es false ¡siempre!
Si necesita reutilizar los mismos datos dos veces, ¿qué tal ponerlos todos en una matriz?
$rows = array();
while($row = mysql_fetch_assoc($affiliateID)){
$rows[] = $row;
}
Ahora puede iterar a través de $rows tantas veces como quieras:
foreach($rows as $row) { ... }